Report generated on 18-Sep-2020 at 21:04:15 by pytest-html v2.1.1
| Packages | {"pluggy": "0.13.1", "py": "1.9.0", "pytest": "6.0.2"} |
| Platform | Linux-4.19.76-linuxkit-x86_64-with-glibc2.2.5 |
| Plugins | {"excel": "1.4.1", "forked": "1.3.0", "html": "2.1.1", "json": "0.4.0", "metadata": "1.10.0", "sugar": "0.9.4", "xdist": "2.1.0"} |
| Python | 3.8.5 |
204 tests ran in 51.37 seconds.
(Un)check the boxes to filter the results.
200 passed, 16 skipped, 4 failed, 0 errors, 0 expected failures, 0 unexpected passes| Result | Device | Test | Description | Duration |
|---|---|---|---|---|
| No results found. Try to check the filters | ||||
| Failed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceMtuTests::test_if_intf_mtu_is_correct_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no inDiscards | 0.12 |
|
[gw3] linux -- Python 3.8.5 /usr/local/bin/python3 self = <tests.interface.test_interface.InterfaceMtuTests object at 0x7f6f894b4d00> dut = {'connection': Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)), 'name': 'kg-topology-C...TEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, ...}} tests_definitions = {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'description': 'Verify the interfaces of interest protoc...rify username is set correctly', 'expected_output': True, 'name': 'test_if_usernames_are_configured_on_', ...}]}, ...]} def test_if_intf_mtu_is_correct_on_(self, dut, tests_definitions): """ Verify the interfaces of interest have no inDiscards Args: dut (dict): Encapsulates dut details including name, connection """ test_parameters = tests_tools.get_parameters(tests_definitions, TEST_SUITE) expected_output = test_parameters["expected_output"] dut_name = dut['name'] interfaces_list = dut["output"]["interface_list"] show_cmd = test_parameters["show_cmd"] tests_tools.verify_show_cmd(show_cmd, dut) show_cmd_txt = dut["output"][show_cmd]['text'] print(f"\nOn router |{dut_name}|:") for interface in interfaces_list: interface_name = interface['interface_name'].replace(" ", "") int_ptr = dut["output"][show_cmd]['json']['interfaces'] actual_output = int_ptr[interface_name]['mtu'] output_msg = (f"On interface |{interface_name}|: interface " f"MTU is |{actual_output}|, correct MTU is " f"|{expected_output}|") test_result = actual_output == expected_output comment = (f'TEST if interface |{interface_name}| MTU is correct ' f'on |{dut_name}|.\nGIVEN MTU of |{expected_output}|.\n' f'WHEN interface MTU is |{actual_output}|.\nTHEN test ' f'case result is |{test_result}|.\nOUTPUT of ' f'|{show_cmd}| is:\n\n{show_cmd_txt}') print(f" - {output_msg}\n{comment}") tests_tools.post_testcase(test_parameters, comment, test_result, output_msg, actual_output, dut_name) > assert actual_output == expected_output E assert 1500 == 10178 E +1500 E -10178 tests/interface/test_interface.py:712: AssertionError -------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178| TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|. GIVEN MTU of |10178|. WHEN interface MTU is |1500|. THEN test case result is |False|. OUTPUT of |show interfaces| is: Ethernet1 is up, line protocol is up (connected) Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4) Internet address is 11.201.12.101/24 Broadcast address is 255.255.255.255 Address determined by DHCP IP MTU 1500 bytes (default) Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a Up 36 days, 19 hours, 44 minutes, 11 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec 71411973 packets input, 8923307841 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 79662041 packets output, 15222720871 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Ethernet100 is up, line protocol is up (connected) Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae) Internet address is 11.201.8.1/22 Broadcast address is 255.255.255.255 IP MTU 1400 bytes , BW 10000000 kbit Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a Up 36 days, 19 hours, 44 minutes, 9 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec 0 packets input, 0 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 0 packets output, 0 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Loopback0 is up, line protocol is up (connected) Hardware is Loopback Internet address is 11.201.0.2/32 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 36 days, 19 hours, 41 minutes, 30 seconds Loopback10 is up, line protocol is up (connected) Hardware is Loopback Internet address is 198.18.0.36/24 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 36 days, 19 hours, 44 minutes, 34 seconds -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'} INFO root:tests_tools.py:372 Verify if show command |show interfaces| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_mtu_is_correct_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:543 Create test case test_if_intf_mtu_is_correct_on_ in results file INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_mtu_is_correct_on_ with parameters {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'test_result': False, 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'actual_output': 1500, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|'} | ||||
| Failed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceMtuTests::test_if_intf_mtu_is_correct_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no inDiscards | 0.24 |
|
[gw3] linux -- Python 3.8.5 /usr/local/bin/python3 self = <tests.interface.test_interface.InterfaceMtuTests object at 0x7f6f893ac6d0> dut = {'connection': Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)), 'name': 'kg-topology-C...TEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, ...}} tests_definitions = {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'description': 'Verify the interfaces of interest protoc...rify username is set correctly', 'expected_output': True, 'name': 'test_if_usernames_are_configured_on_', ...}]}, ...]} def test_if_intf_mtu_is_correct_on_(self, dut, tests_definitions): """ Verify the interfaces of interest have no inDiscards Args: dut (dict): Encapsulates dut details including name, connection """ test_parameters = tests_tools.get_parameters(tests_definitions, TEST_SUITE) expected_output = test_parameters["expected_output"] dut_name = dut['name'] interfaces_list = dut["output"]["interface_list"] show_cmd = test_parameters["show_cmd"] tests_tools.verify_show_cmd(show_cmd, dut) show_cmd_txt = dut["output"][show_cmd]['text'] print(f"\nOn router |{dut_name}|:") for interface in interfaces_list: interface_name = interface['interface_name'].replace(" ", "") int_ptr = dut["output"][show_cmd]['json']['interfaces'] actual_output = int_ptr[interface_name]['mtu'] output_msg = (f"On interface |{interface_name}|: interface " f"MTU is |{actual_output}|, correct MTU is " f"|{expected_output}|") test_result = actual_output == expected_output comment = (f'TEST if interface |{interface_name}| MTU is correct ' f'on |{dut_name}|.\nGIVEN MTU of |{expected_output}|.\n' f'WHEN interface MTU is |{actual_output}|.\nTHEN test ' f'case result is |{test_result}|.\nOUTPUT of ' f'|{show_cmd}| is:\n\n{show_cmd_txt}') print(f" - {output_msg}\n{comment}") tests_tools.post_testcase(test_parameters, comment, test_result, output_msg, actual_output, dut_name) > assert actual_output == expected_output E assert 1500 == 10178 E +1500 E -10178 tests/interface/test_interface.py:712: AssertionError -------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178| TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|. GIVEN MTU of |10178|. WHEN interface MTU is |1500|. THEN test case result is |False|. OUTPUT of |show interfaces| is: Ethernet1 is up, line protocol is up (connected) Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756) Internet address is 11.201.13.101/24 Broadcast address is 255.255.255.255 Address determined by DHCP IP MTU 1500 bytes (default) Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a Up 36 days, 19 hours, 44 minutes, 17 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec 72480938 packets input, 9047178758 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 81218701 packets output, 15355078697 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Ethernet100 is up, line protocol is up (connected) Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f) Internet address is 11.201.8.1/22 Broadcast address is 255.255.255.255 IP MTU 1400 bytes , BW 10000000 kbit Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a Up 36 days, 19 hours, 44 minutes, 15 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec 0 packets input, 0 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 0 packets output, 0 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Loopback0 is up, line protocol is up (connected) Hardware is Loopback Internet address is 11.201.0.4/32 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 36 days, 19 hours, 41 minutes, 43 seconds Loopback10 is up, line protocol is up (connected) Hardware is Loopback Internet address is 198.18.0.38/24 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 36 days, 19 hours, 44 minutes, 37 seconds -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'} INFO root:tests_tools.py:372 Verify if show command |show interfaces| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_mtu_is_correct_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:540 Test case test_if_intf_mtu_is_correct_on_ exists in results file at index 12 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_mtu_is_correct_on_ with parameters {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'test_result': False, 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'actual_output': 1500, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|'} | ||||
| Failed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceMtuTests::test_if_intf_mtu_is_correct_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no inDiscards | 2.00 |
|
[gw0] linux -- Python 3.8.5 /usr/local/bin/python3 self = <tests.interface.test_interface.InterfaceMtuTests object at 0x7fbd85cdd520> dut = {'connection': Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)), 'name': 'kg-topology-...TEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, ...}} tests_definitions = {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'description': 'Verify the interfaces of interest protoc...rify username is set correctly', 'expected_output': True, 'name': 'test_if_usernames_are_configured_on_', ...}]}, ...]} def test_if_intf_mtu_is_correct_on_(self, dut, tests_definitions): """ Verify the interfaces of interest have no inDiscards Args: dut (dict): Encapsulates dut details including name, connection """ test_parameters = tests_tools.get_parameters(tests_definitions, TEST_SUITE) expected_output = test_parameters["expected_output"] dut_name = dut['name'] interfaces_list = dut["output"]["interface_list"] show_cmd = test_parameters["show_cmd"] tests_tools.verify_show_cmd(show_cmd, dut) show_cmd_txt = dut["output"][show_cmd]['text'] print(f"\nOn router |{dut_name}|:") for interface in interfaces_list: interface_name = interface['interface_name'].replace(" ", "") int_ptr = dut["output"][show_cmd]['json']['interfaces'] actual_output = int_ptr[interface_name]['mtu'] output_msg = (f"On interface |{interface_name}|: interface " f"MTU is |{actual_output}|, correct MTU is " f"|{expected_output}|") test_result = actual_output == expected_output comment = (f'TEST if interface |{interface_name}| MTU is correct ' f'on |{dut_name}|.\nGIVEN MTU of |{expected_output}|.\n' f'WHEN interface MTU is |{actual_output}|.\nTHEN test ' f'case result is |{test_result}|.\nOUTPUT of ' f'|{show_cmd}| is:\n\n{show_cmd_txt}') print(f" - {output_msg}\n{comment}") tests_tools.post_testcase(test_parameters, comment, test_result, output_msg, actual_output, dut_name) > assert actual_output == expected_output E assert 1500 == 10178 E +1500 E -10178 tests/interface/test_interface.py:712: AssertionError -------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178| TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|. GIVEN MTU of |10178|. WHEN interface MTU is |1500|. THEN test case result is |False|. OUTPUT of |show interfaces| is: Ethernet1 is up, line protocol is up (connected) Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6) Internet address is 11.201.14.101/25 Broadcast address is 255.255.255.255 Address determined by DHCP IP MTU 1500 bytes (default) Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a Up 36 days, 19 hours, 44 minutes, 28 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec 142915339 packets input, 16774522127 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 170050138 packets output, 36345827611 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Ethernet2 is up, line protocol is up (connected) Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316) Internet address is 11.201.14.201/25 Broadcast address is 255.255.255.255 IP MTU 9000 bytes Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a Up 36 days, 19 hours, 44 minutes, 28 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec 161292245 packets input, 29335401047 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 142623412 packets output, 16839145488 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Ethernet2.102 is up, line protocol is up (connected) Hardware is Subinterface, address is 023d.7650.e316 Internet address is 11.201.14.201/25 Broadcast address is 255.255.255.255 IP MTU 9000 bytes (default) Up 36 days, 19 hours, 38 minutes, 8 seconds Ethernet100 is up, line protocol is up (connected) Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc) Internet address is 11.201.8.1/22 Broadcast address is 255.255.255.255 IP MTU 1400 bytes , BW 10000000 kbit Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a Up 36 days, 19 hours, 44 minutes, 26 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec 0 packets input, 0 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 0 packets output, 0 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Loopback0 is up, line protocol is up (connected) Hardware is Loopback Internet address is 11.201.0.1/32 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 36 days, 19 hours, 41 minutes, 53 seconds Loopback10 is up, line protocol is up (connected) Hardware is Loopback Internet address is 198.18.0.35/24 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 36 days, 19 hours, 44 minutes, 43 seconds Vlan4093 is down, line protocol is lowerlayerdown (notconnect) Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000) IP MTU 9164 bytes (default) Down 36 days, 19 hours, 38 minutes, 8 seconds Vlan4094 is down, line protocol is lowerlayerdown (notconnect) Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000) IP MTU 9164 bytes (default) Down 36 days, 19 hours, 41 minutes, 51 seconds Vxlan1 is up, line protocol is up (connected) Hardware is Vxlan Source interface is Loopback0 and is active with 11.201.0.1 Replication/Flood Mode is headend with Flood List Source: CLI Remote MAC learning is disabled VNI mapping to VLANs Static VLAN to VNI mapping is Dynamic VLAN to VNI mapping for 'evpn' is [4093, 102] [4094, 101] Note: All Dynamic VLANs used by VCS are internal VLANs. Use 'show vxlan vni' for details. Static VRF to VNI mapping is [default, 101] [prod, 102] MLAG Shared Router MAC is 0000.0000.0000 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'} INFO root:tests_tools.py:372 Verify if show command |show interfaces| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_mtu_is_correct_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_mtu_is_correct_on_ exists in results file at index 12 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_mtu_is_correct_on_ with parameters {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'test_result': False, 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'actual_output': 1500, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|'} | ||||
| Failed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceMtuTests::test_if_intf_mtu_is_correct_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no inDiscards | 1.58 |
|
[gw0] linux -- Python 3.8.5 /usr/local/bin/python3 self = <tests.interface.test_interface.InterfaceMtuTests object at 0x7fbd85cd46d0> dut = {'connection': Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)), 'name': 'kg-topology-...TEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, ...}} tests_definitions = {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'description': 'Verify the interfaces of interest protoc...rify username is set correctly', 'expected_output': True, 'name': 'test_if_usernames_are_configured_on_', ...}]}, ...]} def test_if_intf_mtu_is_correct_on_(self, dut, tests_definitions): """ Verify the interfaces of interest have no inDiscards Args: dut (dict): Encapsulates dut details including name, connection """ test_parameters = tests_tools.get_parameters(tests_definitions, TEST_SUITE) expected_output = test_parameters["expected_output"] dut_name = dut['name'] interfaces_list = dut["output"]["interface_list"] show_cmd = test_parameters["show_cmd"] tests_tools.verify_show_cmd(show_cmd, dut) show_cmd_txt = dut["output"][show_cmd]['text'] print(f"\nOn router |{dut_name}|:") for interface in interfaces_list: interface_name = interface['interface_name'].replace(" ", "") int_ptr = dut["output"][show_cmd]['json']['interfaces'] actual_output = int_ptr[interface_name]['mtu'] output_msg = (f"On interface |{interface_name}|: interface " f"MTU is |{actual_output}|, correct MTU is " f"|{expected_output}|") test_result = actual_output == expected_output comment = (f'TEST if interface |{interface_name}| MTU is correct ' f'on |{dut_name}|.\nGIVEN MTU of |{expected_output}|.\n' f'WHEN interface MTU is |{actual_output}|.\nTHEN test ' f'case result is |{test_result}|.\nOUTPUT of ' f'|{show_cmd}| is:\n\n{show_cmd_txt}') print(f" - {output_msg}\n{comment}") tests_tools.post_testcase(test_parameters, comment, test_result, output_msg, actual_output, dut_name) > assert actual_output == expected_output E assert 1500 == 10178 E +1500 E -10178 tests/interface/test_interface.py:712: AssertionError -------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178| TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge2|. GIVEN MTU of |10178|. WHEN interface MTU is |1500|. THEN test case result is |False|. OUTPUT of |show interfaces| is: Ethernet1 is up, line protocol is up (connected) Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530) Internet address is 11.201.15.101/25 Broadcast address is 255.255.255.255 Address determined by DHCP IP MTU 1500 bytes (default) Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a Up 36 days, 19 hours, 44 minutes, 6 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 63.2 kbps (- with framing overhead), 64 packets/sec 5 minutes output rate 143 kbps (- with framing overhead), 76 packets/sec 119690374 packets input, 14194433394 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 140872710 packets output, 29875711696 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Ethernet2 is up, line protocol is up (connected) Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780) Internet address is 11.201.15.201/25 Broadcast address is 255.255.255.255 IP MTU 9000 bytes Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a Up 36 days, 19 hours, 44 minutes, 6 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 94.4 kbps (- with framing overhead), 61 packets/sec 5 minutes output rate 51.7 kbps (- with framing overhead), 53 packets/sec 130337624 packets input, 21305235270 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 118083820 packets output, 13260372096 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Ethernet2.102 is up, line protocol is up (connected) Hardware is Subinterface, address is 0667.8522.a780 Internet address is 11.201.15.201/25 Broadcast address is 255.255.255.255 IP MTU 9000 bytes (default) Up 36 days, 19 hours, 38 minutes, 3 seconds Ethernet100 is up, line protocol is up (connected) Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297) Internet address is 11.201.8.1/22 Broadcast address is 255.255.255.255 IP MTU 1400 bytes , BW 10000000 kbit Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a Up 36 days, 19 hours, 44 minutes, 4 seconds Loopback Mode : None 3 link status changes since last clear Last clearing of "show interface" counters never 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec 0 packets input, 0 bytes Received 0 broadcasts, 0 multicast 0 runts, 0 giants 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards 0 PAUSE input 0 packets output, 0 bytes Sent 0 broadcasts, 0 multicast 0 output errors, 0 collisions 0 late collision, 0 deferred, 0 output discards 0 PAUSE output Loopback0 is up, line protocol is up (connected) Hardware is Loopback Internet address is 11.201.0.3/32 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 36 days, 19 hours, 41 minutes, 23 seconds Loopback10 is up, line protocol is up (connected) Hardware is Loopback Internet address is 198.18.0.37/24 Broadcast address is 255.255.255.255 IP MTU 65535 bytes (default) Up 36 days, 19 hours, 44 minutes, 27 seconds Vlan4093 is down, line protocol is lowerlayerdown (notconnect) Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000) IP MTU 9164 bytes (default) Down 36 days, 19 hours, 38 minutes, 5 seconds Vlan4094 is down, line protocol is lowerlayerdown (notconnect) Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000) IP MTU 9164 bytes (default) Down 36 days, 19 hours, 41 minutes, 19 seconds Vxlan1 is up, line protocol is up (connected) Hardware is Vxlan Source interface is Loopback0 and is active with 11.201.0.3 Replication/Flood Mode is headend with Flood List Source: CLI Remote MAC learning is disabled VNI mapping to VLANs Static VLAN to VNI mapping is Dynamic VLAN to VNI mapping for 'evpn' is [4093, 102] [4094, 101] Note: All Dynamic VLANs used by VCS are internal VLANs. Use 'show vxlan vni' for details. Static VRF to VNI mapping is [default, 101] [prod, 102] MLAG Shared Router MAC is 0000.0000.0000 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_mtu_is_correct_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'} INFO root:tests_tools.py:372 Verify if show command |show interfaces| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_mtu_is_correct_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_mtu_is_correct_on_ exists in results file at index 12 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_mtu_is_correct_on_ with parameters {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 63.2 kbps (- with framing overhead), 64 packets/sec\n 5 minutes output rate 143 kbps (- with framing overhead), 76 packets/sec\n 119690374 packets input, 14194433394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 140872710 packets output, 29875711696 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 94.4 kbps (- with framing overhead), 61 packets/sec\n 5 minutes output rate 51.7 kbps (- with framing overhead), 53 packets/sec\n 130337624 packets input, 21305235270 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 118083820 packets output, 13260372096 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 3 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 4 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 23 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 27 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 5 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 19 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'test_result': False, 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'actual_output': 1500, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|'} | ||||
| Skipped | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_authentication_counters_are_incrementing_on_[kg-topology-CloudEosRR1]::setup | Verify AAA counters are working correctly | 0.00 |
|
[gw0] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/aaa/test_aaa.py', 51, 'Skipped: No AAA setup on DUTs') | ||||
| Skipped | kg-topology-CloudEosRR1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_temp_are_in_spec_on_[kg-topology-CloudEosRR1]::setup | Verify system temperature environmentals are functional within spec | 0.00 |
|
[gw2] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 51, 'Skipped: CloudEOS doesnt have temp sensors') | ||||
| Skipped | kg-topology-CloudEosRR1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_power_are_in_spec_on_[kg-topology-CloudEosRR1]::setup | Verify system power environmentals are functional within spec | 0.00 |
|
[gw0] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 110, 'Skipped: CloudEOS doesnt have power supplies') | ||||
| Skipped | kg-topology-CloudEosRR1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_cooling_is_in_spec_on_[kg-topology-CloudEosRR1]::setup | Verify system cooling environmentals are functional within spec | 0.00 |
|
[gw1] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 154, 'Skipped: CloudEOS doesnt have cooling') | ||||
| Skipped | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_authentication_counters_are_incrementing_on_[kg-topology-CloudEosRR2]::setup | Verify AAA counters are working correctly | 0.00 |
|
[gw2] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/aaa/test_aaa.py', 51, 'Skipped: No AAA setup on DUTs') | ||||
| Skipped | kg-topology-CloudEosRR2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_power_are_in_spec_on_[kg-topology-CloudEosRR2]::setup | Verify system power environmentals are functional within spec | 0.00 |
|
[gw1] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 110, 'Skipped: CloudEOS doesnt have power supplies') | ||||
| Skipped | kg-topology-CloudEosRR2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_cooling_is_in_spec_on_[kg-topology-CloudEosRR2]::setup | Verify system cooling environmentals are functional within spec | 0.00 |
|
[gw1] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 154, 'Skipped: CloudEOS doesnt have cooling') | ||||
| Skipped | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_authentication_counters_are_incrementing_on_[kg-topology-CloudEOSEdge1]::setup | Verify AAA counters are working correctly | 0.00 |
|
[gw2] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/aaa/test_aaa.py', 51, 'Skipped: No AAA setup on DUTs') | ||||
| Skipped | kg-topology-CloudEosRR2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_temp_are_in_spec_on_[kg-topology-CloudEosRR2]::setup | Verify system temperature environmentals are functional within spec | 0.00 |
|
[gw0] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 51, 'Skipped: CloudEOS doesnt have temp sensors') | ||||
| Skipped | kg-topology-CloudEOSEdge1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_temp_are_in_spec_on_[kg-topology-CloudEOSEdge1]::setup | Verify system temperature environmentals are functional within spec | 0.00 |
|
[gw0] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 51, 'Skipped: CloudEOS doesnt have temp sensors') | ||||
| Skipped | kg-topology-CloudEOSEdge1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_power_are_in_spec_on_[kg-topology-CloudEOSEdge1]::setup | Verify system power environmentals are functional within spec | 0.00 |
|
[gw0] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 110, 'Skipped: CloudEOS doesnt have power supplies') | ||||
| Skipped | kg-topology-CloudEOSEdge1 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_cooling_is_in_spec_on_[kg-topology-CloudEOSEdge1]::setup | Verify system cooling environmentals are functional within spec | 0.00 |
|
[gw0] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 154, 'Skipped: CloudEOS doesnt have cooling') | ||||
| Skipped | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_authentication_counters_are_incrementing_on_[kg-topology-CloudEOSEdge2]::setup | Verify AAA counters are working correctly | 0.00 |
|
[gw1] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/aaa/test_aaa.py', 51, 'Skipped: No AAA setup on DUTs') | ||||
| Skipped | kg-topology-CloudEOSEdge2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_power_are_in_spec_on_[kg-topology-CloudEOSEdge2]::setup | Verify system power environmentals are functional within spec | 0.00 |
|
[gw3] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 110, 'Skipped: CloudEOS doesnt have power supplies') | ||||
| Skipped | kg-topology-CloudEOSEdge2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_cooling_is_in_spec_on_[kg-topology-CloudEOSEdge2]::setup | Verify system cooling environmentals are functional within spec | 0.00 |
|
[gw3] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 154, 'Skipped: CloudEOS doesnt have cooling') | ||||
| Skipped | kg-topology-CloudEOSEdge2 | tests/environment/test_environment.py::EnvironmentTests::test_if_system_environment_temp_are_in_spec_on_[kg-topology-CloudEOSEdge2]::setup | Verify system temperature environmentals are functional within spec | 0.00 |
|
[gw1] linux -- Python 3.8.5 /usr/local/bin/python3 ('/project/vane/bin/tests/environment/test_environment.py', 51, 'Skipped: CloudEOS doesnt have temp sensors') | ||||
| Passed | kg-topology-CloudEosRR1 | tests/test_pytest.py::PyTestTests::test_assert_true[kg-topology-CloudEosRR1] | Prior to running any tests this test Validates that PyTest is working correct by verifying PyTest can assert True. | 0.00 |
|
-------------------------------Captured log call-------------------------------- INFO root:test_pytest.py:48 Prior to running any tests this test Validates thatPyTest is working correct by verifying PyTest can assert True. | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_commands_authorization_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA command authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA authorization methods for fcommands: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_commands_authorization_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:184 TEST is command authorization methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:186 GIVEN command authorization method list: |['none']| INFO root:test_aaa.py:190 WHEN EOS command authorization method list is set to |['none']| INFO root:test_aaa.py:194 THEN test case result is |True| INFO root:test_aaa.py:195 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_exec_authorization_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA exec authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA authorization methods for exec: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_exec_authorization_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:227 TEST is exec authorization methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:229 GIVEN exec authorization method list: |['none']| INFO root:test_aaa.py:233 WHEN EOS exec authorization method list is set to |['none']| INFO root:test_aaa.py:237 THEN test case result is |True| INFO root:test_aaa.py:238 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_aaa_session_logging_is_working_on_[kg-topology-CloudEosRR1] | Verify AAA session logging is working by identifying eapi connection | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| identified eAPi AAA session: |commandApi| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_aaa_session_logging_is_working_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show users detail| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show users detail| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:130 TEST is |kg-topology-CloudEosRR1| AAA session logging is working by identifying eapi connection INFO root:test_aaa.py:138 GIVEN commandApi is nonInteractive sessions INFO root:test_aaa.py:139 WHEN commandApi is nonInteractive sessions INFO root:test_aaa.py:154 THEN test case result is |True| INFO root:test_aaa.py:155 OUTPUT of |show users detail| is : Session Username Roles TTY State Duration Auth Remote Host -------- --------- ------- ------------- ------- ---------- ------- ----------- 140591 kgrozis command-api E 0:00:15 local | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_default_login_authentication_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA default login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA authentication methods for default login: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_default_login_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:270 TEST is default login authentication methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:272 GIVEN login authentication method list: |['local']| INFO root:test_aaa.py:276 WHEN EOS login authentication method list is set to |['local']| INFO root:test_aaa.py:280 THEN test case result is |True| INFO root:test_aaa.py:281 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_authentication_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA dot1x authentication are method-lists set correct | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA authentication methods for dot1x default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dot1x_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:364 TEST is dot1x authentication methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:366 GIVEN dot1x authentication method list: |[]| INFO root:test_aaa.py:370 WHEN EOS dot1x authentication method list is set to |[]| INFO root:test_aaa.py:374 THEN test case result is |True| INFO root:test_aaa.py:375 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_enable_authentication_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA enable authentication method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA authentication methods for enable default: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_enable_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:403 TEST is enable authentication methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:405 GIVEN enable authentication method list: |['local']| INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:417 WHEN EOS enable authentication method list is set to |['local']| INFO root:test_aaa.py:421 THEN test case result is |True| INFO root:test_aaa.py:422 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_login_authentication_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_login_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:313 TEST is login authentication methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:315 GIVEN login authentication method list: |None| INFO root:test_aaa.py:332 WHEN EOS login authentication method list is set to |None| INFO root:test_aaa.py:334 THEN test case result is |True| INFO root:test_aaa.py:335 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_system_accounting_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA system accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA accounting methods for default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_system_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:448 TEST is system accounting methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:450 GIVEN default system accounting method list: |[]| and console system accounting methodlist: |[]| INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:466 WHEN default system accounting method list: |[]| and console system accounting method list: |[]| INFO root:test_aaa.py:471 THEN test case result is |True| INFO root:test_aaa.py:472 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_priviledge_accounting_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA priviledge accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_priviledge_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:546 TEST is priviledge accounting methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:548 GIVEN priviledge system accounting method list: |[]| and priviledge system accounting method list: |[]| INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:564 WHEN default privilege accounting method list: |[]| and console privilege accounting method list: |[]| INFO root:test_aaa.py:569 THEN test case result is |True| INFO root:test_aaa.py:570 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_accounting_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA dot1x accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA accounting exec methods for dot1x: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dot1x_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:594 TEST is dot1x accounting methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:596 GIVEN dot1x system accounting method list: |[]| and dot1x system accounting methodlist: |[]| INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:611 WHEN default dot1x accounting method list: |[]| and console dot1x accounting method list: |[]| INFO root:test_aaa.py:616 THEN test case result is |True| INFO root:test_aaa.py:617 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_running_on_[kg-topology-CloudEosRR1] | Verify management api https server is running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| HTTPS Server is running state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:69 TEST is HTTPS API running on |kg-topology-CloudEosRR1| INFO root:test_api.py:70 GIVEN HTTPS API state is |True| INFO root:tests_tools.py:372 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR1 INFO root:test_api.py:80 WHEN HTTPS API state is |True| INFO root:test_api.py:83 THEN test case result is |True| INFO root:test_api.py:84 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 137670 Last hit: 0 seconds ago Bytes in: 20971891 Bytes out: 336430124 Requests: 130305 Commands: 260610 Duration: 13066.684 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 130305 20971891 336430124 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.12.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.2:443 Loopback10 : https://198.18.0.36:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/aaa/test_aaa.py::AAATests::test_if_exec_accounting_methods_set_on_[kg-topology-CloudEosRR1] | Verify AAA exec accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_exec_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:496 TEST is exec accounting methods list set correct on |kg-topology-CloudEosRR1| INFO root:test_aaa.py:498 GIVEN exec system accounting method list: |[]| and exec system accounting methodlist: |[]| INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR1 INFO root:test_aaa.py:514 WHEN default exec accounting method list: |[]| and console exec accounting methodlist: |[]| INFO root:test_aaa.py:519 THEN test case result is |True| INFO root:test_aaa.py:520 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_enabled_on_[kg-topology-CloudEosRR1] | Verify management api https server is enabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| API is enabled state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_is_enabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:142 TEST is HTTPS API enabled on |kg-topology-CloudEosRR1| INFO root:test_api.py:143 GIVEN HTTPS API enabled is |True| INFO root:tests_tools.py:372 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR1 INFO root:test_api.py:152 WHEN HTTPS API enabled is |True| INFO root:test_api.py:155 THEN test case result is |True| INFO root:test_api.py:156 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 137690 Last hit: 0 seconds ago Bytes in: 20974992 Bytes out: 336449673 Requests: 130323 Commands: 260646 Duration: 13067.313 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 130323 20974992 336449673 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.12.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.2:443 Loopback10 : https://198.18.0.36:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/api/test_api.py::APITests::test_if_management_http_api_server_is_running_on_[kg-topology-CloudEosRR1] | Verify management api http server is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_http_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:178 TEST is HTTP API running on |kg-topology-CloudEosRR1| INFO root:test_api.py:179 GIVEN HTTP API state is |False| INFO root:tests_tools.py:372 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR1 INFO root:test_api.py:189 WHEN HTTP API state is |False| INFO root:test_api.py:192 THEN test case result is |True| INFO root:test_api.py:193 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 137683 Last hit: 0 seconds ago Bytes in: 20973925 Bytes out: 336435620 Requests: 130317 Commands: 260634 Duration: 13066.847 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 130317 20973925 336435620 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.12.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.2:443 Loopback10 : https://198.18.0.36:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/api/test_api.py::APITests::test_if_management_local_http_api_server_is_running_on_[kg-topology-CloudEosRR1] | Verify management api local httpserver is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| Local HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_local_http_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:215 TEST is local HTTP API running on |kg-topology-CloudEosRR1| INFO root:test_api.py:216 GIVEN local HTTP API state is |False| INFO root:tests_tools.py:372 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR1 INFO root:test_api.py:226 WHEN HTTP API state is |False| INFO root:test_api.py:229 THEN test case result is |True| INFO root:test_api.py:230 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 137670 Last hit: 0 seconds ago Bytes in: 20971891 Bytes out: 336430124 Requests: 130305 Commands: 260610 Duration: 13066.684 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 130305 20971891 336430124 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.12.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.2:443 Loopback10 : https://198.18.0.36:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_port_is_correct_on_[kg-topology-CloudEosRR1] | Verify https server is enabled on port 443 | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| HTTPS Server is running on port: |443| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_port_is_correct_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True} INFO root:test_api.py:106 TEST is HTTPS API port on |kg-topology-CloudEosRR1| INFO root:test_api.py:107 GIVEN HTTPS API port is |443| INFO root:tests_tools.py:372 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR1 INFO root:test_api.py:116 WHEN HTTPS API port is |443| INFO root:test_api.py:119 THEN test case result is |True| INFO root:test_api.py:120 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 137672 Last hit: 0 seconds ago Bytes in: 20972219 Bytes out: 336431647 Requests: 130307 Commands: 260614 Duration: 13066.709 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 130307 20972219 336431647 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.12.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.2:443 Loopback10 : https://198.18.0.36:443 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/cpu/test_cpu.py::CPUTests::test_1_min_cpu_utlization_on_[kg-topology-CloudEosRR1] | Verify 1 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| 1 minute CPU load average is |1.26%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_1_min_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show processes| on kg-topology-CloudEosRR1 INFO root:test_cpu.py:105 TEST if 1 minute CPU utilization is less than specified value on |kg-topology-CloudEosRR1| INFO root:test_cpu.py:107 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:111 WHEN CPU utilization is |1.26| INFO root:test_cpu.py:114 THEN test case result is |True| INFO root:test_cpu.py:115 OUTPUT of |show processes| is : 21:03:29 up 36 days, 19:45, 0 users, load average: 1.24, 1.26, 1.28 PID %CPU %MEM TT STAT STARTED TIME CMD 2051 101 3.4 ? Sl Aug 13 37-08:08:50 Sfe 1720 2.4 1.8 ? Sl Aug 13 21:18:33 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042 21946 0.5 0.7 ? SNl 14:45:06 00:02:09 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1571 0.3 7.1 ? Sl Aug 13 02:56:46 ConfigAgent 1296 0.2 0.9 ? S Aug 13 02:05:25 ProcMgr-worker 1529 0.2 2.6 ? S Aug 13 02:09:29 Sysdb 1735 0.1 1.7 ? S Aug 13 01:05:36 SuperServer 1759 0.1 1.0 ? S Aug 13 01:43:17 AgentMonitor 1992 0.1 1.6 ? S Aug 13 01:02:07 IpRib 1 0.0 0.0 ? Ss Aug 13 00:08:09 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:16 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:24 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:18 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 738 0.0 0.0 ? Ss Aug 13 00:03:50 /usr/lib/systemd/systemd-logind 740 0.0 0.1 ? Ss Aug 13 00:06:07 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 752 0.0 0.0 ? Ss Aug 13 00:01:12 /usr/bin/ProcMonitor 796 0.0 0.0 ? Ss Aug 13 00:00:08 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 811 0.0 0.0 ? S<s Aug 13 00:00:28 /usr/bin/wdogdev -t 60 820 0.0 0.0 ? Ss Aug 13 00:00:22 /usr/sbin/crond -n 867 0.0 0.0 ? S Aug 13 00:00:02 [kworker/u8:3] 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1468 0.0 0.0 ? S Aug 13 00:12:36 /usr/bin/EosOomAdjust 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu] 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1528 0.0 0.0 ? S Aug 13 00:02:51 /usr/bin/SlabMonitor 1570 0.0 1.2 ? S Aug 13 00:06:26 StageMgr 1575 0.0 1.4 ? S Aug 13 00:15:23 Fru 1576 0.0 1.8 ? S Aug 13 00:06:24 Launcher 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1698 0.0 1.2 ? S Aug 13 00:23:35 Lldp 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1706 0.0 1.2 ? S Aug 13 00:16:12 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:17:48 PortSec 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 1.4 ? S Aug 13 00:17:41 Bfd 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.3 ? S Aug 13 00:38:54 Lag 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.5 ? S Aug 13 00:16:27 Ira 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1744 0.0 1.2 ? S Aug 13 00:20:11 LedPolicy 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1748 0.0 1.3 ? S Aug 13 00:23:08 EventMgr 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.2 ? S Aug 13 00:50:04 StpTxRx 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.1 ? S Aug 13 00:06:29 StandbyCpld 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1763 0.0 1.2 ? S Aug 13 00:10:12 Tunnel 1764 0.0 1.5 ? Sl Aug 13 00:19:41 Aaa 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1768 0.0 1.2 ? S Aug 13 00:16:18 StpTopology 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1778 0.0 1.4 ? S Aug 13 00:36:35 Acl 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1794 0.0 1.1 ? S Aug 13 00:30:34 Stp 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1816 0.0 1.1 ? S Aug 13 00:07:36 KernelNetworkInfo 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.2 ? S Aug 13 00:16:09 McastCommon6 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1837 0.0 1.2 ? S Aug 13 00:16:25 LacpTxAgent 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 1.5 ? S Aug 13 00:25:24 Arp 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1875 0.0 1.4 ? S Aug 13 00:16:21 KernelFib 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1884 0.0 1.2 ? S Aug 13 00:18:41 Qos 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1889 0.0 1.1 ? S Aug 13 00:07:35 Thermostat 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1899 0.0 1.2 ? S Aug 13 00:07:34 L2Rib 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.2 ? S Aug 13 00:15:40 TopoAgent 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1909 0.0 1.1 ? S Aug 13 00:06:28 PowerFuse 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.1 ? S Aug 13 00:06:27 PowerManager 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1939 0.0 1.4 ? S Aug 13 00:22:43 Ebra 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1951 0.0 1.1 ? S Aug 13 00:06:30 ReloadCauseAgent 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1964 0.0 1.1 ? S Aug 13 00:06:29 SharedSecretProfile 1967 0.0 1.5 ? S Aug 13 00:16:28 IgmpSnooping 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1986 0.0 1.3 ? S Aug 13 00:07:37 StaticRoute 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2015 0.0 1.9 ? S Aug 13 00:07:44 BgpCliHelper 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2028 0.0 1.3 ? S Aug 13 00:16:30 ConnectedRoute 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2032 0.0 1.3 ? S Aug 13 00:07:39 RouteInput 2033 0.0 2.3 ? Sl Aug 13 00:36:29 Bgp 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2303 0.0 0.0 ? Ssl Aug 13 00:00:39 /usr/sbin/rsyslogd -n 2369 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2632 0.0 1.1 ? S Aug 13 00:06:30 LicenseManager 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2648 0.0 0.0 ? S Aug 13 00:01:13 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2721 0.0 1.2 ? S Aug 13 00:46:53 Ipsec 2723 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2750 0.0 0.1 ? Ssl Aug 13 00:01:51 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3325 0.0 0.1 ? Ssl Aug 13 00:02:49 /usr/libexec/strongswan/charon --use-syslog 18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18655 0.0 1.3 ? Sl Aug 14 00:09:09 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18701 0.0 0.1 ? S Aug 14 00:03:04 nginx: worker process 21888 0.0 0.0 ? S 20:36:01 00:00:00 [kworker/0:1] 21923 0.0 0.0 ? S 14:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 23386 0.0 0.0 ? S 20:42:00 00:00:00 [kworker/0:0] 27743 0.0 0.0 ? S 20:57:00 00:00:00 [kworker/0:4] 29285 0.0 0.0 ? S 21:03:00 00:00:00 [kworker/0:2] 29668 0.0 0.0 ? S 21:03:27 00:00:00 /bin/sh /sbin/service nginx status 29675 0.0 0.0 ? S 21:03:28 00:00:00 /bin/sh /etc/init.d/nginx status 29676 0.0 0.0 ? Rs 21:03:28 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww | ||||
| Passed | kg-topology-CloudEosRR1 | tests/cpu/test_cpu.py::CPUTests::test_5_min_cpu_utlization_on_[kg-topology-CloudEosRR1] | Verify 5 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| 5 minute CPU load average is |1.28%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_5_min_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show processes| on kg-topology-CloudEosRR1 INFO root:test_cpu.py:140 TEST if 5 minute CPU utilization is less than specified value on |kg-topology-CloudEosRR1| INFO root:test_cpu.py:142 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:146 WHEN CPU utilization is |1.28| INFO root:test_cpu.py:149 THEN test case result is |True| INFO root:test_cpu.py:150 OUTPUT of |show processes| is : 21:03:28 up 36 days, 19:45, 0 users, load average: 1.24, 1.26, 1.28 PID %CPU %MEM TT STAT STARTED TIME CMD 2051 101 3.4 ? Sl Aug 13 37-08:08:50 Sfe 1720 2.4 1.8 ? Sl Aug 13 21:18:33 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042 21946 0.5 0.7 ? SNl 14:45:06 00:02:09 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1571 0.3 7.1 ? Sl Aug 13 02:56:45 ConfigAgent 1296 0.2 0.9 ? S Aug 13 02:05:25 ProcMgr-worker 1529 0.2 2.6 ? S Aug 13 02:09:29 Sysdb 1735 0.1 1.7 ? S Aug 13 01:05:36 SuperServer 1759 0.1 1.0 ? S Aug 13 01:43:17 AgentMonitor 1992 0.1 1.6 ? S Aug 13 01:02:07 IpRib 1 0.0 0.0 ? Ss Aug 13 00:08:09 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:16 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:24 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:18 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 738 0.0 0.0 ? Ss Aug 13 00:03:50 /usr/lib/systemd/systemd-logind 740 0.0 0.1 ? Ss Aug 13 00:06:07 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 752 0.0 0.0 ? Ss Aug 13 00:01:12 /usr/bin/ProcMonitor 796 0.0 0.0 ? Ss Aug 13 00:00:08 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 811 0.0 0.0 ? S<s Aug 13 00:00:28 /usr/bin/wdogdev -t 60 820 0.0 0.0 ? Ss Aug 13 00:00:22 /usr/sbin/crond -n 867 0.0 0.0 ? S Aug 13 00:00:02 [kworker/u8:3] 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1468 0.0 0.0 ? S Aug 13 00:12:36 /usr/bin/EosOomAdjust 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu] 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1528 0.0 0.0 ? S Aug 13 00:02:51 /usr/bin/SlabMonitor 1570 0.0 1.2 ? S Aug 13 00:06:26 StageMgr 1575 0.0 1.4 ? S Aug 13 00:15:23 Fru 1576 0.0 1.8 ? S Aug 13 00:06:24 Launcher 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1698 0.0 1.2 ? S Aug 13 00:23:35 Lldp 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1706 0.0 1.2 ? S Aug 13 00:16:12 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:17:48 PortSec 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 1.4 ? S Aug 13 00:17:41 Bfd 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.3 ? S Aug 13 00:38:54 Lag 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.5 ? S Aug 13 00:16:27 Ira 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1744 0.0 1.2 ? S Aug 13 00:20:11 LedPolicy 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1748 0.0 1.3 ? S Aug 13 00:23:08 EventMgr 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.2 ? S Aug 13 00:50:04 StpTxRx 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.1 ? S Aug 13 00:06:29 StandbyCpld 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1763 0.0 1.2 ? S Aug 13 00:10:12 Tunnel 1764 0.0 1.5 ? Sl Aug 13 00:19:41 Aaa 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1768 0.0 1.2 ? S Aug 13 00:16:18 StpTopology 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1778 0.0 1.4 ? S Aug 13 00:36:35 Acl 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1794 0.0 1.1 ? S Aug 13 00:30:34 Stp 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1816 0.0 1.1 ? S Aug 13 00:07:36 KernelNetworkInfo 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.2 ? S Aug 13 00:16:09 McastCommon6 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1837 0.0 1.2 ? S Aug 13 00:16:25 LacpTxAgent 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 1.5 ? S Aug 13 00:25:24 Arp 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1875 0.0 1.4 ? S Aug 13 00:16:21 KernelFib 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1884 0.0 1.2 ? S Aug 13 00:18:41 Qos 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1889 0.0 1.1 ? S Aug 13 00:07:35 Thermostat 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1899 0.0 1.2 ? S Aug 13 00:07:34 L2Rib 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.2 ? S Aug 13 00:15:40 TopoAgent 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1909 0.0 1.1 ? S Aug 13 00:06:28 PowerFuse 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.1 ? S Aug 13 00:06:27 PowerManager 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1939 0.0 1.4 ? S Aug 13 00:22:43 Ebra 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1951 0.0 1.1 ? S Aug 13 00:06:30 ReloadCauseAgent 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1964 0.0 1.1 ? S Aug 13 00:06:29 SharedSecretProfile 1967 0.0 1.5 ? S Aug 13 00:16:28 IgmpSnooping 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1986 0.0 1.3 ? S Aug 13 00:07:37 StaticRoute 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2015 0.0 1.9 ? S Aug 13 00:07:44 BgpCliHelper 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2028 0.0 1.3 ? S Aug 13 00:16:30 ConnectedRoute 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2032 0.0 1.3 ? S Aug 13 00:07:39 RouteInput 2033 0.0 2.3 ? Sl Aug 13 00:36:29 Bgp 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2303 0.0 0.0 ? Ssl Aug 13 00:00:39 /usr/sbin/rsyslogd -n 2369 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2632 0.0 1.1 ? S Aug 13 00:06:30 LicenseManager 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2648 0.0 0.0 ? S Aug 13 00:01:13 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2721 0.0 1.2 ? S Aug 13 00:46:53 Ipsec 2723 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2750 0.0 0.1 ? Ssl Aug 13 00:01:51 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3325 0.0 0.1 ? Ssl Aug 13 00:02:49 /usr/libexec/strongswan/charon --use-syslog 18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18655 0.0 1.3 ? Sl Aug 14 00:09:09 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18701 0.0 0.1 ? S Aug 14 00:03:04 nginx: worker process 21888 0.0 0.0 ? S 20:36:01 00:00:00 [kworker/0:1] 21923 0.0 0.0 ? S 14:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 23386 0.0 0.0 ? S 20:42:00 00:00:00 [kworker/0:0] 27743 0.0 0.0 ? S 20:57:00 00:00:00 [kworker/0:4] 29285 0.0 0.0 ? S 21:03:00 00:00:00 [kworker/0:2] 29660 0.0 0.0 ? Rs 21:03:27 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww | ||||
| Passed | kg-topology-CloudEosRR1 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_running_on_[kg-topology-CloudEosRR1] | Verify a list of daemons are running on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: TerminAttr daemon running is |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_daemons_are_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show daemon| on kg-topology-CloudEosRR1 INFO root:test_daemon.py:73 TEST is TerminAttr daemon running on |kg-topology-CloudEosRR1| INFO root:test_daemon.py:74 GIVEN expected TerminAttr running state: |True| INFO root:test_daemon.py:79 WHEN TerminAttr device running state is |True| INFO root:test_daemon.py:83 THEN test case result is |True| INFO root:test_daemon.py:84 OUTPUT of |show daemon| is : Process: TerminAttr (running with PID 1720) Uptime: 36 days, 19:44:46 (Start time: Thu Aug 13 01:18:47 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEosRR1 | tests/cpu/test_cpu.py::CPUTests::test_1_sec_cpu_utlization_on_[kg-topology-CloudEosRR1] | Verify 1 second CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| 1 second CPU load average is |1.24%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_1_sec_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show processes| on kg-topology-CloudEosRR1 INFO root:test_cpu.py:70 TEST if 1 second CPU utilization is less than specified value on |kg-topology-CloudEosRR1| INFO root:test_cpu.py:72 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:76 WHEN CPU utilization is |1.24| INFO root:test_cpu.py:79 THEN test case result is |True| INFO root:test_cpu.py:80 OUTPUT of |show processes| is : 21:03:28 up 36 days, 19:45, 0 users, load average: 1.24, 1.26, 1.28 PID %CPU %MEM TT STAT STARTED TIME CMD 2051 101 3.4 ? Sl Aug 13 37-08:08:50 Sfe 1720 2.4 1.8 ? Sl Aug 13 21:18:33 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042 21946 0.5 0.7 ? SNl 14:45:06 00:02:09 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1571 0.3 7.1 ? Sl Aug 13 02:56:45 ConfigAgent 1296 0.2 0.9 ? S Aug 13 02:05:25 ProcMgr-worker 1529 0.2 2.6 ? S Aug 13 02:09:29 Sysdb 1735 0.1 1.7 ? S Aug 13 01:05:36 SuperServer 1759 0.1 1.0 ? S Aug 13 01:43:17 AgentMonitor 1992 0.1 1.6 ? S Aug 13 01:02:07 IpRib 1 0.0 0.0 ? Ss Aug 13 00:08:09 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:16 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:24 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:18 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 738 0.0 0.0 ? Ss Aug 13 00:03:50 /usr/lib/systemd/systemd-logind 740 0.0 0.1 ? Ss Aug 13 00:06:07 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 752 0.0 0.0 ? Ss Aug 13 00:01:12 /usr/bin/ProcMonitor 796 0.0 0.0 ? Ss Aug 13 00:00:08 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 811 0.0 0.0 ? S<s Aug 13 00:00:28 /usr/bin/wdogdev -t 60 820 0.0 0.0 ? Ss Aug 13 00:00:22 /usr/sbin/crond -n 867 0.0 0.0 ? S Aug 13 00:00:02 [kworker/u8:3] 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1468 0.0 0.0 ? S Aug 13 00:12:36 /usr/bin/EosOomAdjust 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu] 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1528 0.0 0.0 ? S Aug 13 00:02:51 /usr/bin/SlabMonitor 1570 0.0 1.2 ? S Aug 13 00:06:26 StageMgr 1575 0.0 1.4 ? S Aug 13 00:15:23 Fru 1576 0.0 1.8 ? S Aug 13 00:06:24 Launcher 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1698 0.0 1.2 ? S Aug 13 00:23:35 Lldp 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1706 0.0 1.2 ? S Aug 13 00:16:12 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:17:48 PortSec 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 1.4 ? S Aug 13 00:17:41 Bfd 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.3 ? S Aug 13 00:38:54 Lag 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.5 ? S Aug 13 00:16:27 Ira 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1744 0.0 1.2 ? S Aug 13 00:20:11 LedPolicy 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1748 0.0 1.3 ? S Aug 13 00:23:08 EventMgr 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.2 ? S Aug 13 00:50:04 StpTxRx 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.1 ? S Aug 13 00:06:29 StandbyCpld 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1763 0.0 1.2 ? S Aug 13 00:10:12 Tunnel 1764 0.0 1.5 ? Sl Aug 13 00:19:41 Aaa 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1768 0.0 1.2 ? S Aug 13 00:16:18 StpTopology 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1778 0.0 1.4 ? S Aug 13 00:36:35 Acl 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1794 0.0 1.1 ? S Aug 13 00:30:34 Stp 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1816 0.0 1.1 ? S Aug 13 00:07:36 KernelNetworkInfo 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.2 ? S Aug 13 00:16:09 McastCommon6 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1837 0.0 1.2 ? S Aug 13 00:16:25 LacpTxAgent 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 1.5 ? S Aug 13 00:25:24 Arp 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1875 0.0 1.4 ? S Aug 13 00:16:21 KernelFib 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1884 0.0 1.2 ? S Aug 13 00:18:41 Qos 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1889 0.0 1.1 ? S Aug 13 00:07:35 Thermostat 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1899 0.0 1.2 ? S Aug 13 00:07:34 L2Rib 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.2 ? S Aug 13 00:15:40 TopoAgent 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1909 0.0 1.1 ? S Aug 13 00:06:28 PowerFuse 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.1 ? S Aug 13 00:06:27 PowerManager 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1939 0.0 1.4 ? S Aug 13 00:22:43 Ebra 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1951 0.0 1.1 ? S Aug 13 00:06:30 ReloadCauseAgent 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1964 0.0 1.1 ? S Aug 13 00:06:29 SharedSecretProfile 1967 0.0 1.5 ? S Aug 13 00:16:28 IgmpSnooping 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1986 0.0 1.3 ? S Aug 13 00:07:37 StaticRoute 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2015 0.0 1.9 ? S Aug 13 00:07:44 BgpCliHelper 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2028 0.0 1.3 ? S Aug 13 00:16:30 ConnectedRoute 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2032 0.0 1.3 ? S Aug 13 00:07:39 RouteInput 2033 0.0 2.3 ? Sl Aug 13 00:36:29 Bgp 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2303 0.0 0.0 ? Ssl Aug 13 00:00:39 /usr/sbin/rsyslogd -n 2369 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2632 0.0 1.1 ? S Aug 13 00:06:30 LicenseManager 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2648 0.0 0.0 ? S Aug 13 00:01:13 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2721 0.0 1.2 ? S Aug 13 00:46:53 Ipsec 2723 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2750 0.0 0.1 ? Ssl Aug 13 00:01:51 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3325 0.0 0.1 ? Ssl Aug 13 00:02:49 /usr/libexec/strongswan/charon --use-syslog 18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18655 0.0 1.3 ? Sl Aug 14 00:09:09 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18701 0.0 0.1 ? S Aug 14 00:03:04 nginx: worker process 21888 0.0 0.0 ? S 20:36:01 00:00:00 [kworker/0:1] 21923 0.0 0.0 ? S 14:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 23386 0.0 0.0 ? S 20:42:00 00:00:00 [kworker/0:0] 27743 0.0 0.0 ? S 20:57:00 00:00:00 [kworker/0:4] 29285 0.0 0.0 ? S 21:03:00 00:00:00 [kworker/0:2] 29664 0.0 0.0 ? Rs 21:03:27 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww | ||||
| Passed | kg-topology-CloudEosRR1 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_erroring_on_[kg-topology-CloudEosRR1] | Verify a list of extension are not erroring on a DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| awslogs.swix extension error is |False| On router |kg-topology-CloudEosRR1| awsha.rpm extension error is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_extensions_are_erroring_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show extensions| on kg-topology-CloudEosRR1 INFO root:test_extension.py:117 TEST is awslogs.swix extension not erroring on |kg-topology-CloudEosRR1| INFO root:test_extension.py:119 GIVEN expected awslogs.swix extension status: |False| INFO root:test_extension.py:128 WHEN awslogs.swix extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:117 TEST is awsha.rpm extension not erroring on |kg-topology-CloudEosRR1| INFO root:test_extension.py:119 GIVEN expected awsha.rpm extension status: |False| INFO root:test_extension.py:128 WHEN awsha.rpm extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEosRR1 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_enabled_on_[kg-topology-CloudEosRR1] | Verify a list of daemons are enabled on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: TerminAttr daemon enabled is |True| and expected value is |True|. Test result is True -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_daemons_are_enabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:test_daemon.py:105 TEST is terminattr daemon enabled on |kg-topology-CloudEosRR1| INFO root:test_daemon.py:106 GIVEN expected terminattr​ enabled state: |True| INFO root:tests_tools.py:372 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show daemon| on kg-topology-CloudEosRR1 INFO root:test_daemon.py:114 WHEN terminattr​ device enabled state is |True| INFO root:test_daemon.py:118 THEN test case result is |True| INFO root:test_daemon.py:119 OUTPUT of |show daemon|: Process: TerminAttr (running with PID 1720) Uptime: 36 days, 19:44:46 (Start time: Thu Aug 13 01:18:47 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_link_status_is_connected_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest link statuses are up | 0.15 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface link line protocol status is set to: |connected|, correct state is |connected| - On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected| TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|. GIVEN interface status is |connected|. WHEN interface status is |connected|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et100 connected routed full 10G 10/100/1000 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:372 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces status| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'name': 'test_if_intf_link_status_is_connected_on_', 'duts': []}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_link_status_is_connected_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:540 Test case test_if_intf_link_status_is_connected_on_ exists in results file at index 0 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_link_status_is_connected_on_ with parameters {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'actual_output': 'connected', 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/host/test_host.py::HostTests::test_if_hostname_is_correcet_on_[kg-topology-CloudEosRR1] | Verify hostname is set on device is correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| the configured hostname is |kg-topology-CloudEosRR1| and the correct hostname is |kg-topology-CloudEosRR1| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_host.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_hostname_is_correcet_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show hostname| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show hostname| on kg-topology-CloudEosRR1 INFO root:test_host.py:72 TEST is hostname kg-topology-CloudEosRR1 correct INFO root:test_host.py:73 GIVEN hostname kg-topology-CloudEosRR1 INFO root:test_host.py:74 WHEN hostname is kg-topology-CloudEosRR1 INFO root:test_host.py:81 THEN test case result is |False| INFO root:test_host.py:82 OUTPUT of |show hostname| is : Hostname: kg-topology-CloudEosRR1 FQDN: kg-topology-CloudEosRR1 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_short_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no frameTooShorts errors | 0.03 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0| TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|. GIVEN interface frameTooShorts errors is |0|. WHEN interface frameTooShortserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:543 Create test case test_if_intf_counters_has_frame_too_short_errors_on_ in results file INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_frame_too_short_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/filesystem/test_filesystem.py::FileSystemTests::test_if_files_on_[kg-topology-CloudEosRR1] | Verify filesystem is correct and expected files are present | 0.85 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: flash:startup-config file isDir state is |False| On router |kg-topology-CloudEosRR1|: flash:veos-config file isDir state is |False| On router |kg-topology-CloudEosRR1|: flash:zerotouch-config file isDir state is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_filesystem.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_files_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True} INFO root:test_filesystem.py:70 TEST is flash:startup-config file present on |kg-topology-CloudEosRR1| INFO root:test_filesystem.py:71 GIVEN expected flash:startup-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:startup-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)), 'name': 'kg-topology-CloudEosRR1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR1', 'interface_name': 'Ethernet1', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Loopback0': {'lastStatusChangeTimestamp': 1597281716.8369684, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.2'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281558.0152419, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '02:46:bb:59:d5:ae', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463006.872245, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:46:bb:59:d5:ae', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281556.0259395, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:46:bb:e9:20:d4', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 34256.74675522777, 'inPktsRate': 31.342897433038285, 'outBitsRate': 64707.05715542729, 'updateInterval': 300.0, 'outPktsRate': 33.67884842186284}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 79662041, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463006.873731, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 8923307841, 'outDiscards': 0, 'outOctets': 15222720871, 'inUcastPkts': 71411973, 'inTotalPkts': 71411973, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '11.201.12.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:46:bb:e9:20:d4', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281533.080474, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.36'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 10 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 8 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 33 seconds\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR1', 'hostname': 'kg-topology-CloudEosRR1'}, 'text': 'Hostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 3181546.79, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '9B112703F293F47ADC3EE25318457B64', 'systemMacAddress': '02:46:bb:59:d5:ae', 'bootupTimestamp': 1597281461.0, 'memFree': 2959484, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959484 kB\n\n'}, 'show processes': {'json': {'processes': {'2051': {'totalActiveTime': 3226129, 'memPct': 3.4, 'cpuPct': 101.0, 'startTime': 1597281541.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1720': {'totalActiveTime': 76713, 'memPct': 1.8, 'cpuPct': 2.4, 'startTime': 1597281526.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '21946': {'totalActiveTime': 129, 'memPct': 0.7, 'cpuPct': 0.5, 'startTime': 1600440306.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1571': {'totalActiveTime': 10605, 'memPct': 7.1, 'cpuPct': 0.3, 'startTime': 1597281504.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1296': {'totalActiveTime': 7525, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1529': {'totalActiveTime': 7769, 'memPct': 2.6, 'cpuPct': 0.2, 'startTime': 1597281501.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 3936, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281528.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1759': {'totalActiveTime': 6197, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281530.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1992': {'totalActiveTime': 3727, 'memPct': 1.6, 'cpuPct': 0.1, 'startTime': 1597281538.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 489, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 16, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 24, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 18, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '387': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '414': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '705': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '738': {'totalActiveTime': 230, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '740': {'totalActiveTime': 367, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 72, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '796': {'totalActiveTime': 8, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '811': {'totalActiveTime': 28, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '820': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '867': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '[kworker/u8:3]', 'state': 'S', 'ttyName': '?'}, '976': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '977': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1007': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1008': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1026': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1029': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1054': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281475.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1169': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1170': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1204': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1267': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1269': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1295': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1468': {'totalActiveTime': 756, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1476': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1491': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1528': {'totalActiveTime': 171, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 386, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281504.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1575': {'totalActiveTime': 923, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1576': {'totalActiveTime': 384, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1697': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1698': {'totalActiveTime': 1415, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1704': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1706': {'totalActiveTime': 972, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1709': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 1068, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1728': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 1061, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 2334, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 987, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1742': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1744': {'totalActiveTime': 1211, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1748': {'totalActiveTime': 1388, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1749': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 3004, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 389, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1758': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1763': {'totalActiveTime': 612, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1764': {'totalActiveTime': 1181, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1766': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1768': {'totalActiveTime': 978, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1777': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1778': {'totalActiveTime': 2195, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1790': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1794': {'totalActiveTime': 1834, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1816': {'totalActiveTime': 456, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1819': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 969, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1830': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1837': {'totalActiveTime': 985, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1850': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 1524, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1872': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1875': {'totalActiveTime': 981, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1882': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1884': {'totalActiveTime': 1121, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1887': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1888': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1889': {'totalActiveTime': 455, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 454, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 940, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1909': {'totalActiveTime': 388, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 387, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1929': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1935': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1939': {'totalActiveTime': 1363, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1947': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1948': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1951': {'totalActiveTime': 390, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1961': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1964': {'totalActiveTime': 389, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1967': {'totalActiveTime': 988, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1984': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1985': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1986': {'totalActiveTime': 457, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1991': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2009': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '2012': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2015': {'totalActiveTime': 464, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '2025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2027': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2028': {'totalActiveTime': 990, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '2031': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2032': {'totalActiveTime': 459, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2033': {'totalActiveTime': 2189, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2040': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2045': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2303': {'totalActiveTime': 39, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2369': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2630': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2631': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2632': {'totalActiveTime': 390, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2635': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2636': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2637': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2645': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2648': {'totalActiveTime': 73, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2649': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2691': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2718': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2720': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2721': {'totalActiveTime': 2813, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2723': {'totalActiveTime': 2, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2750': {'totalActiveTime': 111, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3323': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3325': {'totalActiveTime': 169, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '18653': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18654': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18655': {'totalActiveTime': 549, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18701': {'totalActiveTime': 184, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '21888': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461361.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '21923': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600440305.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '23386': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461720.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '27743': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462620.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '29285': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462980.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '29636': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600463007.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3181547.2, 'loadAvg': [1.24, 1.26, 1.28], 'users': 0, 'currentTime': 1600463008.093809}}, 'text': " 21:03:28 up 36 days, 19:45, 0 users, load average: 1.24, 1.26, 1.28\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2051 101 3.4 ? Sl Aug 13 37-08:08:50 Sfe\n 1720 2.4 1.8 ? Sl Aug 13 21:18:33 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042\n21946 0.5 0.7 ? SNl 14:45:06 00:02:09 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1571 0.3 7.1 ? Sl Aug 13 02:56:45 ConfigAgent\n 1296 0.2 0.9 ? S Aug 13 02:05:25 ProcMgr-worker\n 1529 0.2 2.6 ? S Aug 13 02:09:29 Sysdb\n 1735 0.1 1.7 ? S Aug 13 01:05:36 SuperServer\n 1759 0.1 1.0 ? S Aug 13 01:43:17 AgentMonitor\n 1992 0.1 1.6 ? S Aug 13 01:02:07 IpRib\n 1 0.0 0.0 ? Ss Aug 13 00:08:09 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:16 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:24 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:18 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 738 0.0 0.0 ? Ss Aug 13 00:03:50 /usr/lib/systemd/systemd-logind\n 740 0.0 0.1 ? Ss Aug 13 00:06:07 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 752 0.0 0.0 ? Ss Aug 13 00:01:12 /usr/bin/ProcMonitor\n 796 0.0 0.0 ? Ss Aug 13 00:00:08 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 811 0.0 0.0 ? S<s Aug 13 00:00:28 /usr/bin/wdogdev -t 60\n 820 0.0 0.0 ? Ss Aug 13 00:00:22 /usr/sbin/crond -n\n 867 0.0 0.0 ? S Aug 13 00:00:02 [kworker/u8:3]\n 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1468 0.0 0.0 ? S Aug 13 00:12:36 /usr/bin/EosOomAdjust\n 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu]\n 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1528 0.0 0.0 ? S Aug 13 00:02:51 /usr/bin/SlabMonitor\n 1570 0.0 1.2 ? S Aug 13 00:06:26 StageMgr\n 1575 0.0 1.4 ? S Aug 13 00:15:23 Fru\n 1576 0.0 1.8 ? S Aug 13 00:06:24 Launcher\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1698 0.0 1.2 ? S Aug 13 00:23:35 Lldp\n 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1706 0.0 1.2 ? S Aug 13 00:16:12 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:17:48 PortSec\n 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 1.4 ? S Aug 13 00:17:41 Bfd\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.3 ? S Aug 13 00:38:54 Lag\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.5 ? S Aug 13 00:16:27 Ira\n 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1744 0.0 1.2 ? S Aug 13 00:20:11 LedPolicy\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1748 0.0 1.3 ? S Aug 13 00:23:08 EventMgr\n 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.2 ? S Aug 13 00:50:04 StpTxRx\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.1 ? S Aug 13 00:06:29 StandbyCpld\n 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1763 0.0 1.2 ? S Aug 13 00:10:12 Tunnel\n 1764 0.0 1.5 ? Sl Aug 13 00:19:41 Aaa\n 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1768 0.0 1.2 ? S Aug 13 00:16:18 StpTopology\n 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1778 0.0 1.4 ? S Aug 13 00:36:35 Acl\n 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1794 0.0 1.1 ? S Aug 13 00:30:34 Stp\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1816 0.0 1.1 ? S Aug 13 00:07:36 KernelNetworkInfo\n 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.2 ? S Aug 13 00:16:09 McastCommon6\n 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1837 0.0 1.2 ? S Aug 13 00:16:25 LacpTxAgent\n 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 1.5 ? S Aug 13 00:25:24 Arp\n 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1875 0.0 1.4 ? S Aug 13 00:16:21 KernelFib\n 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1884 0.0 1.2 ? S Aug 13 00:18:41 Qos\n 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1889 0.0 1.1 ? S Aug 13 00:07:35 Thermostat\n 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1899 0.0 1.2 ? S Aug 13 00:07:34 L2Rib\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.2 ? S Aug 13 00:15:40 TopoAgent\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1909 0.0 1.1 ? S Aug 13 00:06:28 PowerFuse\n 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.1 ? S Aug 13 00:06:27 PowerManager\n 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1939 0.0 1.4 ? S Aug 13 00:22:43 Ebra\n 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1951 0.0 1.1 ? S Aug 13 00:06:30 ReloadCauseAgent\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1964 0.0 1.1 ? S Aug 13 00:06:29 SharedSecretProfile\n 1967 0.0 1.5 ? S Aug 13 00:16:28 IgmpSnooping\n 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1986 0.0 1.3 ? S Aug 13 00:07:37 StaticRoute\n 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2015 0.0 1.9 ? S Aug 13 00:07:44 BgpCliHelper\n 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2028 0.0 1.3 ? S Aug 13 00:16:30 ConnectedRoute\n 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2032 0.0 1.3 ? S Aug 13 00:07:39 RouteInput\n 2033 0.0 2.3 ? Sl Aug 13 00:36:29 Bgp\n 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2303 0.0 0.0 ? Ssl Aug 13 00:00:39 /usr/sbin/rsyslogd -n\n 2369 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2632 0.0 1.1 ? S Aug 13 00:06:30 LicenseManager\n 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2648 0.0 0.0 ? S Aug 13 00:01:13 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console\n 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2721 0.0 1.2 ? S Aug 13 00:46:53 Ipsec\n 2723 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2750 0.0 0.1 ? Ssl Aug 13 00:01:51 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3325 0.0 0.1 ? Ssl Aug 13 00:02:49 /usr/libexec/strongswan/charon --use-syslog\n18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18655 0.0 1.3 ? Sl Aug 14 00:09:09 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18701 0.0 0.1 ? S Aug 14 00:03:04 nginx: worker process \n21888 0.0 0.0 ? S 20:36:01 00:00:00 [kworker/0:1]\n21923 0.0 0.0 ? S 14:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n23386 0.0 0.0 ? S 20:42:00 00:00:00 [kworker/0:0]\n27743 0.0 0.0 ? S 20:57:00 00:00:00 [kworker/0:4]\n29285 0.0 0.0 ? S 21:03:00 00:00:00 [kworker/0:2]\n29655 0.0 0.0 ? Rs 21:03:27 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 140486, 'authorizationAllowed': 1213, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 1, 'authenticationUnavailable': 115, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 140489\n Failed: 1\n Service unavailable: 115\n\nAuthorization\n Allowed: 1213\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'140591': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600462995, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n140591 kgrozis command-api E 0:00:15 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 28, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 28 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.14, 'jitter': 0.367, 'lastReceived': 1600462488.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': -0.182, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 525 1024 377 0.14 -0.182 0.367\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281527.471608, 'pid': 1720, 'enabled': True, 'uptime': 3181486.48, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1720)\nUptime: 36 days, 19:44:46 (Start time: Thu Aug 13 01:18:47 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 130301, 'bytesOut': 336427740, 'lastHitTime': 1600463015.6147847, 'bytesIn': 20971236}}, 'bytesOut': 336427740, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 137666, 'vrf': 'default', 'lastHitTime': 1600463015.6147373, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 13066.621823623427, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 130301, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.12.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.2:443', 'Loopback10 : https://198.18.0.36:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 20971236, 'commandCount': 260602, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 137670\nLast hit: 0 seconds ago\nBytes in: 20971891\nBytes out: 336430124\nRequests: 130305\nCommands: 260610\nDuration: 13066.684 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 130305 20971891 336430124 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.12.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.2:443 \nLoopback10 : https://198.18.0.36:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:03:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:10:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:10:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:20:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:20:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:11 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:13 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:45 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:33 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:34 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:33 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:25 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:03:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:10:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:10:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:20:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:20:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:11 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:13 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:45 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:33 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:34 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:33 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:25 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:startup-config with connnection Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:startup-config on dut kg-topology-CloudEosRR1: [{'command': 'show file information flash:startup-config', 'result': {'isDir': False, 'path': 'flash:/startup-config', 'fileName': '/mnt/flash/startup-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:startup-config on dut kg-topology-CloudEosRR1: [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/startup-config: type is file INFO root:test_filesystem.py:80 WHEN flash:startup-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:startup-config| is : [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:veos-config file present on |kg-topology-CloudEosRR1| INFO root:test_filesystem.py:71 GIVEN expected flash:veos-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:veos-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)), 'name': 'kg-topology-CloudEosRR1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR1', 'interface_name': 'Ethernet1', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Loopback0': {'lastStatusChangeTimestamp': 1597281716.8369684, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.2'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281558.0152419, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '02:46:bb:59:d5:ae', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463006.872245, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:46:bb:59:d5:ae', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281556.0259395, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:46:bb:e9:20:d4', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 34256.74675522777, 'inPktsRate': 31.342897433038285, 'outBitsRate': 64707.05715542729, 'updateInterval': 300.0, 'outPktsRate': 33.67884842186284}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 79662041, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463006.873731, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 8923307841, 'outDiscards': 0, 'outOctets': 15222720871, 'inUcastPkts': 71411973, 'inTotalPkts': 71411973, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '11.201.12.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:46:bb:e9:20:d4', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281533.080474, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.36'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 10 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 8 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 33 seconds\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR1', 'hostname': 'kg-topology-CloudEosRR1'}, 'text': 'Hostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 3181546.79, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '9B112703F293F47ADC3EE25318457B64', 'systemMacAddress': '02:46:bb:59:d5:ae', 'bootupTimestamp': 1597281461.0, 'memFree': 2959484, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959484 kB\n\n'}, 'show processes': {'json': {'processes': {'2051': {'totalActiveTime': 3226129, 'memPct': 3.4, 'cpuPct': 101.0, 'startTime': 1597281541.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1720': {'totalActiveTime': 76713, 'memPct': 1.8, 'cpuPct': 2.4, 'startTime': 1597281526.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '21946': {'totalActiveTime': 129, 'memPct': 0.7, 'cpuPct': 0.5, 'startTime': 1600440306.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1571': {'totalActiveTime': 10605, 'memPct': 7.1, 'cpuPct': 0.3, 'startTime': 1597281504.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1296': {'totalActiveTime': 7525, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1529': {'totalActiveTime': 7769, 'memPct': 2.6, 'cpuPct': 0.2, 'startTime': 1597281501.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 3936, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281528.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1759': {'totalActiveTime': 6197, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281530.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1992': {'totalActiveTime': 3727, 'memPct': 1.6, 'cpuPct': 0.1, 'startTime': 1597281538.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 489, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 16, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 24, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 18, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '387': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '414': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '705': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '738': {'totalActiveTime': 230, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '740': {'totalActiveTime': 367, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 72, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '796': {'totalActiveTime': 8, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '811': {'totalActiveTime': 28, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '820': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '867': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '[kworker/u8:3]', 'state': 'S', 'ttyName': '?'}, '976': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '977': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1007': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1008': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1026': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1029': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1054': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281475.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1169': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1170': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1204': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1267': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1269': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1295': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1468': {'totalActiveTime': 756, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1476': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1491': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1528': {'totalActiveTime': 171, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 386, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281504.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1575': {'totalActiveTime': 923, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1576': {'totalActiveTime': 384, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1697': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1698': {'totalActiveTime': 1415, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1704': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1706': {'totalActiveTime': 972, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1709': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 1068, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1728': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 1061, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 2334, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 987, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1742': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1744': {'totalActiveTime': 1211, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1748': {'totalActiveTime': 1388, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1749': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 3004, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 389, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1758': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1763': {'totalActiveTime': 612, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1764': {'totalActiveTime': 1181, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1766': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1768': {'totalActiveTime': 978, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1777': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1778': {'totalActiveTime': 2195, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1790': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1794': {'totalActiveTime': 1834, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1816': {'totalActiveTime': 456, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1819': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 969, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1830': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1837': {'totalActiveTime': 985, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1850': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 1524, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1872': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1875': {'totalActiveTime': 981, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1882': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1884': {'totalActiveTime': 1121, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1887': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1888': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1889': {'totalActiveTime': 455, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 454, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 940, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1909': {'totalActiveTime': 388, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 387, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1929': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1935': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1939': {'totalActiveTime': 1363, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1947': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1948': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1951': {'totalActiveTime': 390, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1961': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1964': {'totalActiveTime': 389, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1967': {'totalActiveTime': 988, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1984': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1985': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1986': {'totalActiveTime': 457, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1991': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2009': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '2012': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2015': {'totalActiveTime': 464, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '2025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2027': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2028': {'totalActiveTime': 990, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '2031': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2032': {'totalActiveTime': 459, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2033': {'totalActiveTime': 2189, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2040': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2045': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2303': {'totalActiveTime': 39, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2369': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2630': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2631': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2632': {'totalActiveTime': 390, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2635': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2636': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2637': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2645': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2648': {'totalActiveTime': 73, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2649': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2691': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2718': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2720': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2721': {'totalActiveTime': 2813, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2723': {'totalActiveTime': 2, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2750': {'totalActiveTime': 111, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3323': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3325': {'totalActiveTime': 169, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '18653': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18654': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18655': {'totalActiveTime': 549, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18701': {'totalActiveTime': 184, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '21888': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461361.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '21923': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600440305.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '23386': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461720.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '27743': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462620.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '29285': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462980.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '29636': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600463007.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3181547.2, 'loadAvg': [1.24, 1.26, 1.28], 'users': 0, 'currentTime': 1600463008.093809}}, 'text': " 21:03:28 up 36 days, 19:45, 0 users, load average: 1.24, 1.26, 1.28\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2051 101 3.4 ? Sl Aug 13 37-08:08:50 Sfe\n 1720 2.4 1.8 ? Sl Aug 13 21:18:33 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042\n21946 0.5 0.7 ? SNl 14:45:06 00:02:09 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1571 0.3 7.1 ? Sl Aug 13 02:56:45 ConfigAgent\n 1296 0.2 0.9 ? S Aug 13 02:05:25 ProcMgr-worker\n 1529 0.2 2.6 ? S Aug 13 02:09:29 Sysdb\n 1735 0.1 1.7 ? S Aug 13 01:05:36 SuperServer\n 1759 0.1 1.0 ? S Aug 13 01:43:17 AgentMonitor\n 1992 0.1 1.6 ? S Aug 13 01:02:07 IpRib\n 1 0.0 0.0 ? Ss Aug 13 00:08:09 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:16 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:24 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:18 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 738 0.0 0.0 ? Ss Aug 13 00:03:50 /usr/lib/systemd/systemd-logind\n 740 0.0 0.1 ? Ss Aug 13 00:06:07 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 752 0.0 0.0 ? Ss Aug 13 00:01:12 /usr/bin/ProcMonitor\n 796 0.0 0.0 ? Ss Aug 13 00:00:08 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 811 0.0 0.0 ? S<s Aug 13 00:00:28 /usr/bin/wdogdev -t 60\n 820 0.0 0.0 ? Ss Aug 13 00:00:22 /usr/sbin/crond -n\n 867 0.0 0.0 ? S Aug 13 00:00:02 [kworker/u8:3]\n 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1468 0.0 0.0 ? S Aug 13 00:12:36 /usr/bin/EosOomAdjust\n 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu]\n 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1528 0.0 0.0 ? S Aug 13 00:02:51 /usr/bin/SlabMonitor\n 1570 0.0 1.2 ? S Aug 13 00:06:26 StageMgr\n 1575 0.0 1.4 ? S Aug 13 00:15:23 Fru\n 1576 0.0 1.8 ? S Aug 13 00:06:24 Launcher\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1698 0.0 1.2 ? S Aug 13 00:23:35 Lldp\n 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1706 0.0 1.2 ? S Aug 13 00:16:12 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:17:48 PortSec\n 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 1.4 ? S Aug 13 00:17:41 Bfd\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.3 ? S Aug 13 00:38:54 Lag\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.5 ? S Aug 13 00:16:27 Ira\n 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1744 0.0 1.2 ? S Aug 13 00:20:11 LedPolicy\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1748 0.0 1.3 ? S Aug 13 00:23:08 EventMgr\n 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.2 ? S Aug 13 00:50:04 StpTxRx\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.1 ? S Aug 13 00:06:29 StandbyCpld\n 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1763 0.0 1.2 ? S Aug 13 00:10:12 Tunnel\n 1764 0.0 1.5 ? Sl Aug 13 00:19:41 Aaa\n 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1768 0.0 1.2 ? S Aug 13 00:16:18 StpTopology\n 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1778 0.0 1.4 ? S Aug 13 00:36:35 Acl\n 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1794 0.0 1.1 ? S Aug 13 00:30:34 Stp\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1816 0.0 1.1 ? S Aug 13 00:07:36 KernelNetworkInfo\n 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.2 ? S Aug 13 00:16:09 McastCommon6\n 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1837 0.0 1.2 ? S Aug 13 00:16:25 LacpTxAgent\n 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 1.5 ? S Aug 13 00:25:24 Arp\n 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1875 0.0 1.4 ? S Aug 13 00:16:21 KernelFib\n 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1884 0.0 1.2 ? S Aug 13 00:18:41 Qos\n 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1889 0.0 1.1 ? S Aug 13 00:07:35 Thermostat\n 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1899 0.0 1.2 ? S Aug 13 00:07:34 L2Rib\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.2 ? S Aug 13 00:15:40 TopoAgent\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1909 0.0 1.1 ? S Aug 13 00:06:28 PowerFuse\n 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.1 ? S Aug 13 00:06:27 PowerManager\n 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1939 0.0 1.4 ? S Aug 13 00:22:43 Ebra\n 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1951 0.0 1.1 ? S Aug 13 00:06:30 ReloadCauseAgent\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1964 0.0 1.1 ? S Aug 13 00:06:29 SharedSecretProfile\n 1967 0.0 1.5 ? S Aug 13 00:16:28 IgmpSnooping\n 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1986 0.0 1.3 ? S Aug 13 00:07:37 StaticRoute\n 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2015 0.0 1.9 ? S Aug 13 00:07:44 BgpCliHelper\n 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2028 0.0 1.3 ? S Aug 13 00:16:30 ConnectedRoute\n 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2032 0.0 1.3 ? S Aug 13 00:07:39 RouteInput\n 2033 0.0 2.3 ? Sl Aug 13 00:36:29 Bgp\n 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2303 0.0 0.0 ? Ssl Aug 13 00:00:39 /usr/sbin/rsyslogd -n\n 2369 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2632 0.0 1.1 ? S Aug 13 00:06:30 LicenseManager\n 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2648 0.0 0.0 ? S Aug 13 00:01:13 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console\n 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2721 0.0 1.2 ? S Aug 13 00:46:53 Ipsec\n 2723 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2750 0.0 0.1 ? Ssl Aug 13 00:01:51 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3325 0.0 0.1 ? Ssl Aug 13 00:02:49 /usr/libexec/strongswan/charon --use-syslog\n18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18655 0.0 1.3 ? Sl Aug 14 00:09:09 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18701 0.0 0.1 ? S Aug 14 00:03:04 nginx: worker process \n21888 0.0 0.0 ? S 20:36:01 00:00:00 [kworker/0:1]\n21923 0.0 0.0 ? S 14:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n23386 0.0 0.0 ? S 20:42:00 00:00:00 [kworker/0:0]\n27743 0.0 0.0 ? S 20:57:00 00:00:00 [kworker/0:4]\n29285 0.0 0.0 ? S 21:03:00 00:00:00 [kworker/0:2]\n29655 0.0 0.0 ? Rs 21:03:27 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 140486, 'authorizationAllowed': 1213, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 1, 'authenticationUnavailable': 115, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 140489\n Failed: 1\n Service unavailable: 115\n\nAuthorization\n Allowed: 1213\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'140591': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600462995, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n140591 kgrozis command-api E 0:00:15 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 28, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 28 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.14, 'jitter': 0.367, 'lastReceived': 1600462488.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': -0.182, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 525 1024 377 0.14 -0.182 0.367\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281527.471608, 'pid': 1720, 'enabled': True, 'uptime': 3181486.48, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1720)\nUptime: 36 days, 19:44:46 (Start time: Thu Aug 13 01:18:47 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 130301, 'bytesOut': 336427740, 'lastHitTime': 1600463015.6147847, 'bytesIn': 20971236}}, 'bytesOut': 336427740, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 137666, 'vrf': 'default', 'lastHitTime': 1600463015.6147373, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 13066.621823623427, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 130301, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.12.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.2:443', 'Loopback10 : https://198.18.0.36:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 20971236, 'commandCount': 260602, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 137670\nLast hit: 0 seconds ago\nBytes in: 20971891\nBytes out: 336430124\nRequests: 130305\nCommands: 260610\nDuration: 13066.684 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 130305 20971891 336430124 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.12.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.2:443 \nLoopback10 : https://198.18.0.36:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:03:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:10:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:10:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:20:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:20:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:11 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:13 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:45 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:33 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:34 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:33 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:25 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:03:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:10:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:10:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:20:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:20:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:11 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:13 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:45 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:33 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:34 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:33 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:25 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:veos-config with connnection Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:veos-config on dut kg-topology-CloudEosRR1: [{'command': 'show file information flash:veos-config', 'result': {'isDir': False, 'path': 'flash:/veos-config', 'fileName': '/mnt/flash/veos-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:veos-config on dut kg-topology-CloudEosRR1: [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/veos-config: type is file INFO root:test_filesystem.py:80 WHEN flash:veos-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:veos-config| is : [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:zerotouch-config file present on |kg-topology-CloudEosRR1| INFO root:test_filesystem.py:71 GIVEN expected flash:zerotouch-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:zerotouch-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)), 'name': 'kg-topology-CloudEosRR1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR1', 'interface_name': 'Ethernet1', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Loopback0': {'lastStatusChangeTimestamp': 1597281716.8369684, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.2'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281558.0152419, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '02:46:bb:59:d5:ae', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463006.872245, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:46:bb:59:d5:ae', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281556.0259395, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:46:bb:e9:20:d4', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 34256.74675522777, 'inPktsRate': 31.342897433038285, 'outBitsRate': 64707.05715542729, 'updateInterval': 300.0, 'outPktsRate': 33.67884842186284}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 79662041, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463006.873731, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 8923307841, 'outDiscards': 0, 'outOctets': 15222720871, 'inUcastPkts': 71411973, 'inTotalPkts': 71411973, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '11.201.12.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:46:bb:e9:20:d4', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281533.080474, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.36'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 10 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 8 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 33 seconds\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR1', 'hostname': 'kg-topology-CloudEosRR1'}, 'text': 'Hostname: kg-topology-CloudEosRR1\nFQDN: kg-topology-CloudEosRR1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 3181546.79, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '9B112703F293F47ADC3EE25318457B64', 'systemMacAddress': '02:46:bb:59:d5:ae', 'bootupTimestamp': 1597281461.0, 'memFree': 2959484, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959484 kB\n\n'}, 'show processes': {'json': {'processes': {'2051': {'totalActiveTime': 3226129, 'memPct': 3.4, 'cpuPct': 101.0, 'startTime': 1597281541.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1720': {'totalActiveTime': 76713, 'memPct': 1.8, 'cpuPct': 2.4, 'startTime': 1597281526.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '21946': {'totalActiveTime': 129, 'memPct': 0.7, 'cpuPct': 0.5, 'startTime': 1600440306.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1571': {'totalActiveTime': 10605, 'memPct': 7.1, 'cpuPct': 0.3, 'startTime': 1597281504.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1296': {'totalActiveTime': 7525, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1529': {'totalActiveTime': 7769, 'memPct': 2.6, 'cpuPct': 0.2, 'startTime': 1597281501.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 3936, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281528.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1759': {'totalActiveTime': 6197, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281530.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1992': {'totalActiveTime': 3727, 'memPct': 1.6, 'cpuPct': 0.1, 'startTime': 1597281538.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 489, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 16, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 24, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 18, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281460.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '387': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '414': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '705': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281470.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '738': {'totalActiveTime': 230, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '740': {'totalActiveTime': 367, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 72, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '796': {'totalActiveTime': 8, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '811': {'totalActiveTime': 28, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '820': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '867': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '[kworker/u8:3]', 'state': 'S', 'ttyName': '?'}, '976': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '977': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1007': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1008': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1026': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1029': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1054': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281475.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1169': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1170': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1204': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1267': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1269': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281486.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1295': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1468': {'totalActiveTime': 756, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1476': {'totalActiveTime': 2, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1491': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1528': {'totalActiveTime': 171, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 386, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281504.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1575': {'totalActiveTime': 923, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1576': {'totalActiveTime': 384, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281505.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1697': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1698': {'totalActiveTime': 1415, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1704': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1706': {'totalActiveTime': 972, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1709': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 1068, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1728': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 1061, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 2334, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 987, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1742': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1744': {'totalActiveTime': 1211, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1748': {'totalActiveTime': 1388, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1749': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 3004, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 389, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1758': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1763': {'totalActiveTime': 612, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1764': {'totalActiveTime': 1181, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1766': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1768': {'totalActiveTime': 978, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1777': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1778': {'totalActiveTime': 2195, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1790': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1794': {'totalActiveTime': 1834, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1816': {'totalActiveTime': 456, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1819': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 969, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1830': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1837': {'totalActiveTime': 985, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1850': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 1524, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1872': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1875': {'totalActiveTime': 981, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1882': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1884': {'totalActiveTime': 1121, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1887': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1888': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1889': {'totalActiveTime': 455, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 454, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 940, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1909': {'totalActiveTime': 388, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 387, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1929': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1935': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1939': {'totalActiveTime': 1363, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1947': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1948': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1951': {'totalActiveTime': 390, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1961': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1964': {'totalActiveTime': 389, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1967': {'totalActiveTime': 988, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1984': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1985': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1986': {'totalActiveTime': 457, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1991': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2009': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '2012': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2015': {'totalActiveTime': 464, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '2025': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2027': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2028': {'totalActiveTime': 990, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '2030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '2031': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2032': {'totalActiveTime': 459, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2033': {'totalActiveTime': 2189, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2040': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2045': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2303': {'totalActiveTime': 39, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2369': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2630': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2631': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2632': {'totalActiveTime': 390, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2635': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2636': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2637': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2645': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2648': {'totalActiveTime': 73, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2649': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2691': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2718': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2720': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2721': {'totalActiveTime': 2813, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2723': {'totalActiveTime': 2, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2750': {'totalActiveTime': 111, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3323': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3325': {'totalActiveTime': 169, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281717.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '18653': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18654': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18655': {'totalActiveTime': 549, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436394.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18701': {'totalActiveTime': 184, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436395.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '21888': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461361.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '21923': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600440305.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '23386': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461720.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '27743': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462620.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '29285': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462980.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '29636': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600463007.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3181547.2, 'loadAvg': [1.24, 1.26, 1.28], 'users': 0, 'currentTime': 1600463008.093809}}, 'text': " 21:03:28 up 36 days, 19:45, 0 users, load average: 1.24, 1.26, 1.28\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2051 101 3.4 ? Sl Aug 13 37-08:08:50 Sfe\n 1720 2.4 1.8 ? Sl Aug 13 21:18:33 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042\n21946 0.5 0.7 ? SNl 14:45:06 00:02:09 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1571 0.3 7.1 ? Sl Aug 13 02:56:45 ConfigAgent\n 1296 0.2 0.9 ? S Aug 13 02:05:25 ProcMgr-worker\n 1529 0.2 2.6 ? S Aug 13 02:09:29 Sysdb\n 1735 0.1 1.7 ? S Aug 13 01:05:36 SuperServer\n 1759 0.1 1.0 ? S Aug 13 01:43:17 AgentMonitor\n 1992 0.1 1.6 ? S Aug 13 01:02:07 IpRib\n 1 0.0 0.0 ? Ss Aug 13 00:08:09 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:16 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:24 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:18 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 738 0.0 0.0 ? Ss Aug 13 00:03:50 /usr/lib/systemd/systemd-logind\n 740 0.0 0.1 ? Ss Aug 13 00:06:07 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 752 0.0 0.0 ? Ss Aug 13 00:01:12 /usr/bin/ProcMonitor\n 796 0.0 0.0 ? Ss Aug 13 00:00:08 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 811 0.0 0.0 ? S<s Aug 13 00:00:28 /usr/bin/wdogdev -t 60\n 820 0.0 0.0 ? Ss Aug 13 00:00:22 /usr/sbin/crond -n\n 867 0.0 0.0 ? S Aug 13 00:00:02 [kworker/u8:3]\n 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1468 0.0 0.0 ? S Aug 13 00:12:36 /usr/bin/EosOomAdjust\n 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu]\n 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1528 0.0 0.0 ? S Aug 13 00:02:51 /usr/bin/SlabMonitor\n 1570 0.0 1.2 ? S Aug 13 00:06:26 StageMgr\n 1575 0.0 1.4 ? S Aug 13 00:15:23 Fru\n 1576 0.0 1.8 ? S Aug 13 00:06:24 Launcher\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1698 0.0 1.2 ? S Aug 13 00:23:35 Lldp\n 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1706 0.0 1.2 ? S Aug 13 00:16:12 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:17:48 PortSec\n 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 1.4 ? S Aug 13 00:17:41 Bfd\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.3 ? S Aug 13 00:38:54 Lag\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.5 ? S Aug 13 00:16:27 Ira\n 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1744 0.0 1.2 ? S Aug 13 00:20:11 LedPolicy\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1748 0.0 1.3 ? S Aug 13 00:23:08 EventMgr\n 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.2 ? S Aug 13 00:50:04 StpTxRx\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.1 ? S Aug 13 00:06:29 StandbyCpld\n 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1763 0.0 1.2 ? S Aug 13 00:10:12 Tunnel\n 1764 0.0 1.5 ? Sl Aug 13 00:19:41 Aaa\n 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1768 0.0 1.2 ? S Aug 13 00:16:18 StpTopology\n 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1778 0.0 1.4 ? S Aug 13 00:36:35 Acl\n 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1794 0.0 1.1 ? S Aug 13 00:30:34 Stp\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1816 0.0 1.1 ? S Aug 13 00:07:36 KernelNetworkInfo\n 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.2 ? S Aug 13 00:16:09 McastCommon6\n 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1837 0.0 1.2 ? S Aug 13 00:16:25 LacpTxAgent\n 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 1.5 ? S Aug 13 00:25:24 Arp\n 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1875 0.0 1.4 ? S Aug 13 00:16:21 KernelFib\n 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1884 0.0 1.2 ? S Aug 13 00:18:41 Qos\n 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1889 0.0 1.1 ? S Aug 13 00:07:35 Thermostat\n 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1899 0.0 1.2 ? S Aug 13 00:07:34 L2Rib\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.2 ? S Aug 13 00:15:40 TopoAgent\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1909 0.0 1.1 ? S Aug 13 00:06:28 PowerFuse\n 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.1 ? S Aug 13 00:06:27 PowerManager\n 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1939 0.0 1.4 ? S Aug 13 00:22:43 Ebra\n 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1951 0.0 1.1 ? S Aug 13 00:06:30 ReloadCauseAgent\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1964 0.0 1.1 ? S Aug 13 00:06:29 SharedSecretProfile\n 1967 0.0 1.5 ? S Aug 13 00:16:28 IgmpSnooping\n 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1986 0.0 1.3 ? S Aug 13 00:07:37 StaticRoute\n 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2015 0.0 1.9 ? S Aug 13 00:07:44 BgpCliHelper\n 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2028 0.0 1.3 ? S Aug 13 00:16:30 ConnectedRoute\n 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2032 0.0 1.3 ? S Aug 13 00:07:39 RouteInput\n 2033 0.0 2.3 ? Sl Aug 13 00:36:29 Bgp\n 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2303 0.0 0.0 ? Ssl Aug 13 00:00:39 /usr/sbin/rsyslogd -n\n 2369 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2632 0.0 1.1 ? S Aug 13 00:06:30 LicenseManager\n 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2648 0.0 0.0 ? S Aug 13 00:01:13 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console\n 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2721 0.0 1.2 ? S Aug 13 00:46:53 Ipsec\n 2723 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2750 0.0 0.1 ? Ssl Aug 13 00:01:51 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3325 0.0 0.1 ? Ssl Aug 13 00:02:49 /usr/libexec/strongswan/charon --use-syslog\n18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18655 0.0 1.3 ? Sl Aug 14 00:09:09 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18701 0.0 0.1 ? S Aug 14 00:03:04 nginx: worker process \n21888 0.0 0.0 ? S 20:36:01 00:00:00 [kworker/0:1]\n21923 0.0 0.0 ? S 14:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n23386 0.0 0.0 ? S 20:42:00 00:00:00 [kworker/0:0]\n27743 0.0 0.0 ? S 20:57:00 00:00:00 [kworker/0:4]\n29285 0.0 0.0 ? S 21:03:00 00:00:00 [kworker/0:2]\n29655 0.0 0.0 ? Rs 21:03:27 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 140486, 'authorizationAllowed': 1213, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 1, 'authenticationUnavailable': 115, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 140489\n Failed: 1\n Service unavailable: 115\n\nAuthorization\n Allowed: 1213\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'140591': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600462995, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n140591 kgrozis command-api E 0:00:15 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 28, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 28 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.14, 'jitter': 0.367, 'lastReceived': 1600462488.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': -0.182, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 525 1024 377 0.14 -0.182 0.367\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281527.471608, 'pid': 1720, 'enabled': True, 'uptime': 3181486.48, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1720)\nUptime: 36 days, 19:44:46 (Start time: Thu Aug 13 01:18:47 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293403136 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 130301, 'bytesOut': 336427740, 'lastHitTime': 1600463015.6147847, 'bytesIn': 20971236}}, 'bytesOut': 336427740, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 137666, 'vrf': 'default', 'lastHitTime': 1600463015.6147373, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 13066.621823623427, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 130301, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.12.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.2:443', 'Loopback10 : https://198.18.0.36:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 20971236, 'commandCount': 260602, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 137670\nLast hit: 0 seconds ago\nBytes in: 20971891\nBytes out: 336430124\nRequests: 130305\nCommands: 260610\nDuration: 13066.684 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 130305 20971891 336430124 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.12.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.2:443 \nLoopback10 : https://198.18.0.36:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:03:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:10:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:10:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:20:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:20:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:11 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:13 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:45 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:33 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:34 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:33 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:25 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:03:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:10:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:10:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:20:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:20:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:11 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:24:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:13 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:45 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:33 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:34 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:33 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:25 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:zerotouch-config with connnection Node(connection=EapiConnection(transport=https://3.22.137.44:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:zerotouch-config on dut kg-topology-CloudEosRR1: [{'command': 'show file information flash:zerotouch-config', 'result': {'isDir': False, 'path': 'flash:/zerotouch-config', 'fileName': '/mnt/flash/zerotouch-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:zerotouch-config on dut kg-topology-CloudEosRR1: [{'output': 'flash:/zerotouch-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/zerotouch-config: type is file INFO root:test_filesystem.py:80 WHEN flash:zerotouch-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:zerotouch-config| is : [{'output': 'flash:/zerotouch-config:\n type is file\n'}] | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_input_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest does not have input errors | 0.24 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0| TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|. GIVEN interface input errors is |0|. WHEN interface inputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:543 Create test case test_if_intf_counters_has_input_errors_on_ in results file INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_input_errors_on_ with parameters {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_symbol_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no alignmentErrors errors | 0.10 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0| TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|. GIVEN interface symbolErrors errors is |0|. WHEN interface symbolErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_symbol_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:543 Create test case test_if_intf_counters_has_symbol_errors_on_ in results file INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_symbol_errors_on_ with parameters {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/dns/test_dns.py::DNSTests::test_if_dns_resolves_on_[kg-topology-CloudEosRR1] | Verify DNS is running by performing pings and verifying name resolution | 1.21 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| DNS resolution |Passed| for google.com On router |kg-topology-CloudEosRR1| DNS resolution |Passed| for cnn.com On router |kg-topology-CloudEosRR1| DNS resolution |Passed| for arista.com -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_dns.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dns_resolves_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True} INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR1| resolve google.com INFO root:test_dns.py:71 GIVEN URL is |google.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping google.com| is : PING google.com (172.217.9.46) 72(100) bytes of data. 76 bytes from ord38s08-in-f14.1e100.net (172.217.9.46): icmp_seq=1 ttl=101 (truncated) 76 bytes from ord38s08-in-f14.1e100.net (172.217.9.46): icmp_seq=2 ttl=101 (truncated) 76 bytes from ord38s08-in-f14.1e100.net (172.217.9.46): icmp_seq=3 ttl=101 (truncated) 76 bytes from ord38s08-in-f14.1e100.net (172.217.9.46): icmp_seq=4 ttl=101 (truncated) 76 bytes from ord38s08-in-f14.1e100.net (172.217.9.46): icmp_seq=5 ttl=101 (truncated) --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 64ms rtt min/avg/max/mdev = 17.301/17.322/17.332/0.166 ms, pipe 2, ipg/ewma 16.074/17.326 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR1| resolve cnn.com INFO root:test_dns.py:71 GIVEN URL is |cnn.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping cnn.com| is : PING cnn.com (151.101.193.67) 72(100) bytes of data. 80 bytes from 151.101.193.67 (151.101.193.67): icmp_seq=1 ttl=39 time=11.3 ms 80 bytes from 151.101.193.67 (151.101.193.67): icmp_seq=2 ttl=39 time=11.3 ms 80 bytes from 151.101.193.67 (151.101.193.67): icmp_seq=3 ttl=39 time=11.2 ms 80 bytes from 151.101.193.67 (151.101.193.67): icmp_seq=4 ttl=39 time=11.2 ms 80 bytes from 151.101.193.67 (151.101.193.67): icmp_seq=5 ttl=39 time=11.2 ms --- cnn.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 43ms rtt min/avg/max/mdev = 11.228/11.274/11.339/0.141 ms, pipe 2, ipg/ewma 10.972/11.304 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR1| resolve arista.com INFO root:test_dns.py:71 GIVEN URL is |arista.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping arista.com| is : PING arista.com (64.68.200.46) 72(100) bytes of data. 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=1 ttl=39 time=23.7 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=2 ttl=39 time=23.7 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=3 ttl=39 time=23.7 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=4 ttl=39 time=23.7 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=5 ttl=39 time=23.7 ms --- arista.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 68ms rtt min/avg/max/mdev = 23.715/23.752/23.786/0.140 ms, pipe 3, ipg/ewma 17.067/23.742 ms | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfacePhyTests::test_if_intf_phy_status_connected_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest physical state is link up | 0.31 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ kg-topology-CloudEosRR1 is a VEOS instance so test NOT valid -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'} INFO root:tests_tools.py:372 Verify if show command |show interfaces phy detail| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces phy detail| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:419 Verify if kg-topology-CloudEosRR1 DUT is a VEOS instance INFO root:tests_tools.py:423 kg-topology-CloudEosRR1 is a VEOS instance so returning True INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_phy_status_connected_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:543 Create test case test_if_intf_phy_status_connected_on_ in results file INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_phy_status_connected_on_ with parameters {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail', 'test_suite': 'test_interface.py', 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'test_result': True, 'output_msg': None, 'actual_output': None, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_fcs_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no fcsErrors errors | 0.07 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0| TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|. GIVEN interface fcsErrors errors is |0|. WHEN interface fcsErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_fcs_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:543 Create test case test_if_intf_counters_has_fcs_errors_on_ in results file INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_fcs_errors_on_ with parameters {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_installed_on_[kg-topology-CloudEosRR1] | Verify a list of extension are installed on a DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| awslogs.swix extension is |installed| On router |kg-topology-CloudEosRR1| awsha.rpm extension is |installed| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_extensions_are_installed_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show extensions| on kg-topology-CloudEosRR1 INFO root:test_extension.py:73 TEST is awslogs.swix extension installed on |kg-topology-CloudEosRR1| INFO root:test_extension.py:75 GIVEN expected awslogs.swix extension status: |installed| INFO root:test_extension.py:83 WHEN awslogs.swix extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:73 TEST is awsha.rpm extension installed on |kg-topology-CloudEosRR1| INFO root:test_extension.py:75 GIVEN expected awsha.rpm extension status: |installed| INFO root:test_extension.py:83 WHEN awsha.rpm extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEosRR1 | tests/lldp/test_lldp.py::LldpTests::test_if_lldp_rx_is_enabled_on_[kg-topology-CloudEosRR1] | Verify LLDP receive is enabled on interesting interfaces | 0.12 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True| TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|. GIVEN LLDP receive state is |True|. WHEN LLDP receive state is |True|. THEN test case result is |True|. OUTPUT of |show lldp| is: LLDP transmit interval : 30 seconds LLDP transmit holdtime : 120 seconds LLDP reinitialization delay : 2 seconds LLDP Management Address VRF : default Enabled optional TLVs: Port Description System Name System Description System Capabilities Management Address (best) IEEE802.1 Port VLAN ID IEEE802.3 Link Aggregation IEEE802.3 Maximum Frame Size IEEE802.3 Power Via MDI LLDP-MED Capabilities LLDP-MED Network Policy Port Tx Enabled Rx Enabled ----------- ---------------- ---------- Et1 Yes Yes Et100 Yes Yes -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_lldp_rx_is_enabled_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_lldp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_lldp_rx_is_enabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'} INFO root:tests_tools.py:372 Verify if show command |show lldp| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show lldp| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:520 Find the Index for test suite: test_lldp.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}]}] INFO root:tests_tools.py:530 Create test suite test_lldp.py in results file INFO root:tests_tools.py:535 Find Index for test case: test_if_lldp_rx_is_enabled_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:543 Create test case test_if_lldp_rx_is_enabled_on_ in results file INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR1 to test case test_if_lldp_rx_is_enabled_on_ with parameters {'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp', 'test_suite': 'test_lldp.py', 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'actual_output': True, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_long_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no frameLongShorts errors | 0.07 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0| TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|. GIVEN interface frameTooLongs errors is |0|. WHEN interface frameTooLongserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:543 Create test case test_if_intf_counters_has_frame_too_long_errors_on_ in results file INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_frame_too_long_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_associated_with_peers_on_[kg-topology-CloudEosRR1] | Verify ntp peers are correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| has |1| NTP peer associations -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_ntp_associated_with_peers_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show ntp associations| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show ntp associations| on kg-topology-CloudEosRR1 INFO root:test_ntp.py:104 TEST is NTP associations with peers on |kg-topology-CloudEosRR1| INFO root:test_ntp.py:105 GIVEN NTP associated are greater than or equal to |1| INFO root:test_ntp.py:112 WHEN NTP associated peers fare |1| INFO root:test_ntp.py:115 THEN test case result is |True| INFO root:test_ntp.py:116 OUTPUT of |show ntp associations| is : remote refid st t when poll reach delay offset jitter ============================================================================== *169.254.169.123 169.254.169.12 3 l 525 1024 377 0.14 -0.182 0.367 | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_in_counters_are_discarding_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no inDiscards | 0.11 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0| TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|. GIVEN interface inbound discards are |0|. WHEN interface inbound discards are |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_in_counters_are_discarding_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:543 Create test case test_if_intf_in_counters_are_discarding_on_ in results file INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_in_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_protocol_status_is_connected_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest protocol statuses are up | 0.35 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up| TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|. GIVEN interface status is |up|. WHEN interface status is |up|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et100 connected routed full 10G 10/100/1000 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:372 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces status| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:543 Create test case test_if_intf_protocol_status_is_connected_on_ in results file INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_protocol_status_is_connected_on_ with parameters {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'actual_output': 'up', 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_out_counters_are_discarding_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no outDiscards | 0.09 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0| TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| GIVEN interface outbound discards are |0| WHEN interface outbound discards are |0| THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_out_counters_are_discarding_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:543 Create test case test_if_intf_out_counters_are_discarding_on_ in results file INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_out_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/users/test_users.py::UsersTests::test_if_usernames_are_configured_on_[kg-topology-CloudEosRR1] | Verify username is set correctly | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| |ec2-user| username is |configured| On router |kg-topology-CloudEosRR1| |kgrozis| username is |configured| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_users.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_usernames_are_configured_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show running-config section username| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show running-config section username| on kg-topology-CloudEosRR1 INFO root:test_users.py:74 TEST is ec2-user username configured |kg-topology-CloudEosRR1| INFO root:test_users.py:76 GIVEN ec2-user username configured status: |True| INFO root:test_users.py:82 WHEN ec2-user username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. INFO root:test_users.py:74 TEST is kgrozis username configured |kg-topology-CloudEosRR1| INFO root:test_users.py:76 GIVEN kgrozis username configured status: |True| INFO root:test_users.py:82 WHEN kgrozis username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. | ||||
| Passed | kg-topology-CloudEosRR2 | tests/test_pytest.py::PyTestTests::test_assert_true[kg-topology-CloudEosRR2] | Prior to running any tests this test Validates that PyTest is working correct by verifying PyTest can assert True. | 0.00 |
|
-------------------------------Captured log call-------------------------------- INFO root:test_pytest.py:48 Prior to running any tests this test Validates thatPyTest is working correct by verifying PyTest can assert True. | ||||
| Passed | kg-topology-CloudEosRR1 | tests/memory/test_memory.py::MemoryTests::test_memory_utilization_on_[kg-topology-CloudEosRR1] | Verify memory is not exceeding high utlization | 0.13 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ - On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%| TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|. GIVEN memory utilization is less than |70|. WHEN memory utilization is |38.13084044717752|. THEN test case result is |True|. OUTPUT of |show version| is: Arista vEOS Hardware version: Serial number: 9B112703F293F47ADC3EE25318457B64 System MAC address: 0246.bb59.d5ae Software image version: 4.23.1F-cloud-16179785.jakartarel (engineering build) Architecture: x86_64 Internal build version: 4.23.1F-cloud-16179785.jakartarel Internal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809 Uptime: 5 weeks, 1 days, 19 hours and 45 minutes Total memory: 7761392 kB Free memory: 2959492 kB -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_memory_utilization_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_memory.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_memory_utilization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show version| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show version| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:520 Find the Index for test suite: test_memory.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}] INFO root:tests_tools.py:530 Create test suite test_memory.py in results file INFO root:tests_tools.py:535 Find Index for test case: test_memory_utilization_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:543 Create test case test_memory_utilization_on_ in results file INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR1 to test case test_memory_utilization_on_ with parameters {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'result': True, 'test_suite': 'test_memory.py', 'test_result': True, 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'actual_output': 38.13084044717752, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/logging/test_logging.py::LoggingTests::test_if_log_messages_appear_on_[kg-topology-CloudEosRR1] | Verify local log messages | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| message |critical| NOT found in local log On router |kg-topology-CloudEosRR1| message |warning| NOT found in local log On router |kg-topology-CloudEosRR1| message |ECC| NOT found in local log On router |kg-topology-CloudEosRR1| message |servers errors| NOT found in local log On router |kg-topology-CloudEosRR1| message |parity| NOT found in local log -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_logging.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_log_messages_appear_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show logging| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show logging| on kg-topology-CloudEosRR1 INFO root:test_logging.py:74 TEST for local log message critical on |kg-topology-CloudEosRR1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 20:03:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:10:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:10:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:20:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:20:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:24:11 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:24:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:24:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:24:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:27:13 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:27:45 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:30:59 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:33 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:34 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:36:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:37:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:33 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:53:47 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:57:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:58:25 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 21:03:15 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message warning on |kg-topology-CloudEosRR1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 20:03:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:10:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:10:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:20:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:20:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:24:11 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:24:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:24:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:24:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:27:13 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:27:45 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:30:59 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:33 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:34 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:36:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:37:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:33 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:53:47 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:57:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:58:25 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 21:03:15 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message ECC on |kg-topology-CloudEosRR1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 20:03:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:10:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:10:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:20:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:20:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:24:11 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:24:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:24:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:24:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:27:13 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:27:45 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:30:59 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:33 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:34 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:36:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:37:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:33 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:53:47 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:57:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:58:25 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 21:03:15 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message servers errors on |kg-topology-CloudEosRR1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 20:03:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:10:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:10:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:20:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:20:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:24:11 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:24:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:24:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:24:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:27:13 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:27:45 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:30:59 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:33 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:34 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:36:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:37:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:33 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:53:47 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:57:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:58:25 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 21:03:15 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message parity on |kg-topology-CloudEosRR1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 20:03:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:10:10 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:10:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:20:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:20:35 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:24:11 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:24:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:24:38 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:24:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:27:13 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:27:45 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:30:59 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:33 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:02 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:34 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:36:48 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:37:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:01 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:33 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:17 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:43 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:44 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:50 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:53:47 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:18 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:57:56 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:23 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:58:25 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:31 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 21:03:15 kg-topology-CloudEosRR1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_aaa_session_logging_is_working_on_[kg-topology-CloudEosRR2] | Verify AAA session logging is working by identifying eapi connection | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| identified eAPi AAA session: |commandApi| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_aaa_session_logging_is_working_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show users detail| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show users detail| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:130 TEST is |kg-topology-CloudEosRR2| AAA session logging is working by identifying eapi connection INFO root:test_aaa.py:138 GIVEN commandApi is nonInteractive sessions INFO root:test_aaa.py:139 WHEN commandApi is nonInteractive sessions INFO root:test_aaa.py:154 THEN test case result is |True| INFO root:test_aaa.py:155 OUTPUT of |show users detail| is : Session Username Roles TTY State Duration Auth Remote Host -------- --------- ------- ------------- ------- ---------- ------- ----------- 140685 kgrozis command-api E 0:00:15 local | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_output_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest does not have output errors | 0.13 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0| TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|. GIVEN interface output errors is |0|. WHEN interface outputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:543 Create test case test_if_intf_counters_has_output_errors_on_ in results file INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_output_errors_on_ with parameters {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_sending_messages_on_[kg-topology-CloudEosRR1] | Verify tacacs messages are sending correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_tacacs_is_sending_messages_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show tacacs| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:396 Verify if tacacs server(s) are configured on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:402 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:73 TEST is |kg-topology-CloudEosRR1| sending messages to TACACS server | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_commands_authorization_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA command authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA authorization methods for fcommands: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_commands_authorization_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:184 TEST is command authorization methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:186 GIVEN command authorization method list: |['none']| INFO root:test_aaa.py:190 WHEN EOS command authorization method list is set to |['none']| INFO root:test_aaa.py:194 THEN test case result is |True| INFO root:test_aaa.py:195 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/ntp/test_ntp.py::NTPTests::test_if_process_is_running_on_[kg-topology-CloudEosRR1] | Verify ntp processes are running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| has |1| process for ntpd -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_process_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show processes| on kg-topology-CloudEosRR1 INFO root:test_ntp.py:148 TEST is ntpd running on |kg-topology-CloudEosRR1| INFO root:test_ntp.py:149 GIVEN ntpd state is |1| INFO root:test_ntp.py:155 WHEN ntpd number is |1| INFO root:test_ntp.py:158 THEN test case result is |True| INFO root:test_ntp.py:159 OUTPUT of |show processes| is : 21:03:28 up 36 days, 19:45, 0 users, load average: 1.24, 1.26, 1.28 PID %CPU %MEM TT STAT STARTED TIME CMD 2051 101 3.4 ? Sl Aug 13 37-08:08:50 Sfe 1720 2.4 1.8 ? Sl Aug 13 21:18:33 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.12.101 -taillogs -grpcaddr=0.0.0.0:6042 21946 0.5 0.7 ? SNl 14:45:06 00:02:09 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1571 0.3 7.1 ? Sl Aug 13 02:56:45 ConfigAgent 1296 0.2 0.9 ? S Aug 13 02:05:25 ProcMgr-worker 1529 0.2 2.6 ? S Aug 13 02:09:29 Sysdb 1735 0.1 1.7 ? S Aug 13 01:05:36 SuperServer 1759 0.1 1.0 ? S Aug 13 01:43:17 AgentMonitor 1992 0.1 1.6 ? S Aug 13 01:02:07 IpRib 1 0.0 0.0 ? Ss Aug 13 00:08:09 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:16 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:24 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:18 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 387 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 414 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 705 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 734 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 738 0.0 0.0 ? Ss Aug 13 00:03:50 /usr/lib/systemd/systemd-logind 740 0.0 0.1 ? Ss Aug 13 00:06:07 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 752 0.0 0.0 ? Ss Aug 13 00:01:12 /usr/bin/ProcMonitor 796 0.0 0.0 ? Ss Aug 13 00:00:08 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 811 0.0 0.0 ? S<s Aug 13 00:00:28 /usr/bin/wdogdev -t 60 820 0.0 0.0 ? Ss Aug 13 00:00:22 /usr/sbin/crond -n 867 0.0 0.0 ? S Aug 13 00:00:02 [kworker/u8:3] 976 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 977 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1007 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1008 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1025 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1026 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1029 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1054 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1169 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1170 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1204 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1267 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1269 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1295 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1468 0.0 0.0 ? S Aug 13 00:12:36 /usr/bin/EosOomAdjust 1476 0.0 0.0 ? S Aug 13 00:00:02 [rbfd_vrf_cleanu] 1491 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1528 0.0 0.0 ? S Aug 13 00:02:51 /usr/bin/SlabMonitor 1570 0.0 1.2 ? S Aug 13 00:06:26 StageMgr 1575 0.0 1.4 ? S Aug 13 00:15:23 Fru 1576 0.0 1.8 ? S Aug 13 00:06:24 Launcher 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=283510534772,283510025210,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1697 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1698 0.0 1.2 ? S Aug 13 00:23:35 Lldp 1703 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=283625389593,283557152987,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1704 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1706 0.0 1.2 ? S Aug 13 00:16:12 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=283790275633,283680080063,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1709 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:17:48 PortSec 1727 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=284244580020,284069179516,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1728 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 1.4 ? S Aug 13 00:17:41 Bfd 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=288276526737,288091282802,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.3 ? S Aug 13 00:38:54 Lag 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=292170530223,292160868939,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.5 ? S Aug 13 00:16:27 Ira 1742 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=296430530784,292790029349,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1743 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1744 0.0 1.2 ? S Aug 13 00:20:11 LedPolicy 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=296679631718,296505735315,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1748 0.0 1.3 ? S Aug 13 00:23:08 EventMgr 1749 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=296966020071,296758072413,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.2 ? S Aug 13 00:50:04 StpTxRx 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=297230697565,297031996334,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.1 ? S Aug 13 00:06:29 StandbyCpld 1757 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=300703577697,297318029615,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1758 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=300917240606,300815189647,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1762 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1763 0.0 1.2 ? S Aug 13 00:10:12 Tunnel 1764 0.0 1.5 ? Sl Aug 13 00:19:41 Aaa 1766 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=301455121817,301267954454,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1767 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1768 0.0 1.2 ? S Aug 13 00:16:18 StpTopology 1773 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=305296588459,301639833561,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1777 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1778 0.0 1.4 ? S Aug 13 00:36:35 Acl 1790 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305473916024,305413789947,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1794 0.0 1.1 ? S Aug 13 00:30:34 Stp 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=309631584027,309381913189,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1816 0.0 1.1 ? S Aug 13 00:07:36 KernelNetworkInfo 1819 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=309865727193,309723632318,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.2 ? S Aug 13 00:16:09 McastCommon6 1830 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=313593113413,309953840906,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1834 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1837 0.0 1.2 ? S Aug 13 00:16:25 LacpTxAgent 1850 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=314118913201,313693882645,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 1.5 ? S Aug 13 00:25:24 Arp 1872 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314295268017,314276868472,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1873 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1875 0.0 1.4 ? S Aug 13 00:16:21 KernelFib 1882 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=318150424387,318144860272,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1883 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1884 0.0 1.2 ? S Aug 13 00:18:41 Qos 1887 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318469770561,318468274840,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1888 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1889 0.0 1.1 ? S Aug 13 00:07:35 Thermostat 1892 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=322522479134,322385632691,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1896 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1898 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=326605383165,326604902657,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1899 0.0 1.2 ? S Aug 13 00:07:34 L2Rib 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.2 ? S Aug 13 00:15:40 TopoAgent 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=326894071252,326715955598,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1905 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1909 0.0 1.1 ? S Aug 13 00:06:28 PowerFuse 1914 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=327071699135,326953747273,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.1 ? S Aug 13 00:06:27 PowerManager 1929 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=327151350040,327147282764,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1935 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1939 0.0 1.4 ? S Aug 13 00:22:43 Ebra 1947 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=331154170429,330747269552,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1948 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1951 0.0 1.1 ? S Aug 13 00:06:30 ReloadCauseAgent 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=331232223925,331231692014,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1961 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1964 0.0 1.1 ? S Aug 13 00:06:29 SharedSecretProfile 1967 0.0 1.5 ? S Aug 13 00:16:28 IgmpSnooping 1984 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=335195923420,335185191889,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1985 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1986 0.0 1.3 ? S Aug 13 00:07:37 StaticRoute 1990 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=335500217122,335274316065,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1991 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2009 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=335591889667,335586171622,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 2012 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2015 0.0 1.9 ? S Aug 13 00:07:44 BgpCliHelper 2025 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=339572209152,339402675873,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 2027 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2028 0.0 1.3 ? S Aug 13 00:16:30 ConnectedRoute 2030 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=340013863328,339680435197,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 2031 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2032 0.0 1.3 ? S Aug 13 00:07:39 RouteInput 2033 0.0 2.3 ? Sl Aug 13 00:36:29 Bgp 2040 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=344444576369,344061658149,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2045 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2303 0.0 0.0 ? Ssl Aug 13 00:00:39 /usr/sbin/rsyslogd -n 2369 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2630 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=395217769752,395217285612,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2631 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2632 0.0 1.1 ? S Aug 13 00:06:30 LicenseManager 2635 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2636 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2637 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2645 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2648 0.0 0.0 ? S Aug 13 00:01:13 /usr/bin/tail -n 0 --retry --follow=name --pid=2635 /var/log/eos-console 2649 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2691 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2718 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=417010822932,417010338793,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2720 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2721 0.0 1.2 ? S Aug 13 00:46:53 Ipsec 2723 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2750 0.0 0.1 ? Ssl Aug 13 00:01:51 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2753 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3323 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3325 0.0 0.1 ? Ssl Aug 13 00:02:49 /usr/libexec/strongswan/charon --use-syslog 18653 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665436806498288,665436806007998,tbl://sysdb/+n,Sysdb (pid:1529) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18654 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18655 0.0 1.3 ? Sl Aug 14 00:09:09 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18699 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18701 0.0 0.1 ? S Aug 14 00:03:04 nginx: worker process 21888 0.0 0.0 ? S 20:36:01 00:00:00 [kworker/0:1] 21923 0.0 0.0 ? S 14:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 23386 0.0 0.0 ? S 20:42:00 00:00:00 [kworker/0:0] 27743 0.0 0.0 ? S 20:57:00 00:00:00 [kworker/0:4] 29285 0.0 0.0 ? S 21:03:00 00:00:00 [kworker/0:2] 29655 0.0 0.0 ? Rs 21:03:27 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww | ||||
| Passed | kg-topology-CloudEosRR1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_alignment_errors_on_[kg-topology-CloudEosRR1] | Verify the interfaces of interest have no alignmentErrors errors | 0.14 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1|: - On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0| TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|. GIVEN interface alignmentErrors errors is |0|. WHEN interface alignmentErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_alignment_errors_on_ on dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:543 Create test case test_if_intf_counters_has_alignment_errors_on_ in results file INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR1 to test case test_if_intf_counters_has_alignment_errors_on_ with parameters {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR1 | tests/ztp/test_ztp.py::ZTPTests::test_for_zerotouch_config_file_on_[kg-topology-CloudEosRR1] | Verify zerotoucn-config file is on flash | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| ZTP configuration file is on flash: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_for_zerotouch_config_file_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |dir flash:zerotouch-config| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |dir flash:zerotouch-config| on kg-topology-CloudEosRR1 INFO root:test_ztp.py:106 TEST is ZTP configuration file is on |kg-topology-CloudEosRR1| INFO root:test_ztp.py:107 GIVEN ZTP configuration file is |True| INFO root:test_ztp.py:113 WHEN ZTP configuration file is |True| INFO root:test_ztp.py:116 THEN test case result is |True| INFO root:test_ztp.py:117 OUTPUT of |dir flash:zerotouch-config| is : Directory of flash:/zerotouch-config -rw- 13 Mar 30 23:38 zerotouch-config 8319852544 bytes total (7293403136 bytes free) | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_exec_authorization_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA exec authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA authorization methods for exec: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_exec_authorization_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:227 TEST is exec authorization methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:229 GIVEN exec authorization method list: |['none']| INFO root:test_aaa.py:233 WHEN EOS exec authorization method list is set to |['none']| INFO root:test_aaa.py:237 THEN test case result is |True| INFO root:test_aaa.py:238 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR1 | tests/ztp/test_ztp.py::ZTPTests::test_if_zerotouch_is_disabled_on_[kg-topology-CloudEosRR1] | Verify ztp is disabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| ZTP process is in mode: |disabled| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_zerotouch_is_disabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show zerotouch| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show zerotouch| on kg-topology-CloudEosRR1 INFO root:test_ztp.py:71 TEST is ZTP disabled on |kg-topology-CloudEosRR1| INFO root:test_ztp.py:72 GIVEN ZTP state is |disabled| INFO root:test_ztp.py:78 WHEN ZTP state is |disabled| INFO root:test_ztp.py:81 THEN test case result is |True| INFO root:test_ztp.py:82 OUTPUT of |show zerotouch| is : ZeroTouch Mode: Disabled Script Exec Timeout: 900 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_default_login_authentication_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA default login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA authentication methods for default login: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_default_login_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:270 TEST is default login authentication methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:272 GIVEN login authentication method list: |['local']| INFO root:test_aaa.py:276 WHEN EOS login authentication method list is set to |['local']| INFO root:test_aaa.py:280 THEN test case result is |True| INFO root:test_aaa.py:281 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_running_on_[kg-topology-CloudEosRR2] | Verify management api https server is running | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| HTTPS Server is running state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:69 TEST is HTTPS API running on |kg-topology-CloudEosRR2| INFO root:test_api.py:70 GIVEN HTTPS API state is |True| INFO root:tests_tools.py:372 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR2 INFO root:test_api.py:80 WHEN HTTPS API state is |True| INFO root:test_api.py:83 THEN test case result is |True| INFO root:test_api.py:84 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 137639 Last hit: 0 seconds ago Bytes in: 20967095 Bytes out: 336345772 Requests: 130273 Commands: 260546 Duration: 10542.935 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 130273 20967095 336345772 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.13.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.4:443 Loopback10 : https://198.18.0.38:443 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_installed_on_[kg-topology-CloudEosRR2] | Verify a list of extension are installed on a DUT | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| awslogs.swix extension is |installed| On router |kg-topology-CloudEosRR2| awsha.rpm extension is |installed| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_extensions_are_installed_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show extensions| on kg-topology-CloudEosRR2 INFO root:test_extension.py:73 TEST is awslogs.swix extension installed on |kg-topology-CloudEosRR2| INFO root:test_extension.py:75 GIVEN expected awslogs.swix extension status: |installed| INFO root:test_extension.py:83 WHEN awslogs.swix extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:73 TEST is awsha.rpm extension installed on |kg-topology-CloudEosRR2| INFO root:test_extension.py:75 GIVEN expected awsha.rpm extension status: |installed| INFO root:test_extension.py:83 WHEN awsha.rpm extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEosRR1 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_is_synchronized_on_[kg-topology-CloudEosRR1] | Verify ntp is synchronzied | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| NTP synchronized status is: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_ntp_is_synchronized_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show ntp status| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show ntp status| on kg-topology-CloudEosRR1 INFO root:test_ntp.py:70 TEST is NTP synchronized on |kg-topology-CloudEosRR1| INFO root:test_ntp.py:71 GIVEN NTP synchronized is |True| INFO root:test_ntp.py:77 WHEN NTP configuration file is |True| INFO root:test_ntp.py:80 THEN test case result is |True| INFO root:test_ntp.py:81 OUTPUT of |show ntp status| is : synchronised to NTP server (169.254.169.123) at stratum 4 time correct to within 28 ms polling server every 1024 s | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_login_authentication_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_login_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:313 TEST is login authentication methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:315 GIVEN login authentication method list: |None| INFO root:test_aaa.py:332 WHEN EOS login authentication method list is set to |None| INFO root:test_aaa.py:334 THEN test case result is |True| INFO root:test_aaa.py:335 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_port_is_correct_on_[kg-topology-CloudEosRR2] | Verify https server is enabled on port 443 | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| HTTPS Server is running on port: |443| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_port_is_correct_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True} INFO root:test_api.py:106 TEST is HTTPS API port on |kg-topology-CloudEosRR2| INFO root:test_api.py:107 GIVEN HTTPS API port is |443| INFO root:tests_tools.py:372 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR2 INFO root:test_api.py:116 WHEN HTTPS API port is |443| INFO root:test_api.py:119 THEN test case result is |True| INFO root:test_api.py:120 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 137639 Last hit: 0 seconds ago Bytes in: 20967095 Bytes out: 336345772 Requests: 130273 Commands: 260546 Duration: 10542.935 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 130273 20967095 336345772 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.13.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.4:443 Loopback10 : https://198.18.0.38:443 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_erroring_on_[kg-topology-CloudEosRR2] | Verify a list of extension are not erroring on a DUT | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| awslogs.swix extension error is |False| On router |kg-topology-CloudEosRR2| awsha.rpm extension error is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_extensions_are_erroring_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show extensions| on kg-topology-CloudEosRR2 INFO root:test_extension.py:117 TEST is awslogs.swix extension not erroring on |kg-topology-CloudEosRR2| INFO root:test_extension.py:119 GIVEN expected awslogs.swix extension status: |False| INFO root:test_extension.py:128 WHEN awslogs.swix extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:117 TEST is awsha.rpm extension not erroring on |kg-topology-CloudEosRR2| INFO root:test_extension.py:119 GIVEN expected awsha.rpm extension status: |False| INFO root:test_extension.py:128 WHEN awsha.rpm extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEosRR1 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_receiving_messages_on_[kg-topology-CloudEosRR1] | Verify tacacs messages are received correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR1| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_tacacs_is_receiving_messages_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:376 Verified output for show command |show tacacs| on kg-topology-CloudEosRR1 INFO root:tests_tools.py:396 Verify if tacacs server(s) are configured on kg-topology-CloudEosRR1 dut INFO root:tests_tools.py:402 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:136 TEST is |kg-topology-CloudEosRR1| receiving messages to TACACS server | ||||
| Passed | kg-topology-CloudEosRR2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_enabled_on_[kg-topology-CloudEosRR2] | Verify management api https server is enabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| API is enabled state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_is_enabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:142 TEST is HTTPS API enabled on |kg-topology-CloudEosRR2| INFO root:test_api.py:143 GIVEN HTTPS API enabled is |True| INFO root:tests_tools.py:372 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR2 INFO root:test_api.py:152 WHEN HTTPS API enabled is |True| INFO root:test_api.py:155 THEN test case result is |True| INFO root:test_api.py:156 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 137639 Last hit: 0 seconds ago Bytes in: 20967095 Bytes out: 336345772 Requests: 130273 Commands: 260546 Duration: 10542.935 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 130273 20967095 336345772 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.13.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.4:443 Loopback10 : https://198.18.0.38:443 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_authentication_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA dot1x authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA authentication methods for dot1x default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dot1x_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:364 TEST is dot1x authentication methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:366 GIVEN dot1x authentication method list: |[]| INFO root:test_aaa.py:370 WHEN EOS dot1x authentication method list is set to |[]| INFO root:test_aaa.py:374 THEN test case result is |True| INFO root:test_aaa.py:375 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_enable_authentication_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA enable authentication method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA authentication methods for enable default: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_enable_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:403 TEST is enable authentication methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:405 GIVEN enable authentication method list: |['local']| INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:417 WHEN EOS enable authentication method list is set to |['local']| INFO root:test_aaa.py:421 THEN test case result is |True| INFO root:test_aaa.py:422 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/api/test_api.py::APITests::test_if_management_http_api_server_is_running_on_[kg-topology-CloudEosRR2] | Verify management api http server is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_http_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:178 TEST is HTTP API running on |kg-topology-CloudEosRR2| INFO root:test_api.py:179 GIVEN HTTP API state is |False| INFO root:tests_tools.py:372 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR2 INFO root:test_api.py:189 WHEN HTTP API state is |False| INFO root:test_api.py:192 THEN test case result is |True| INFO root:test_api.py:193 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 137639 Last hit: 0 seconds ago Bytes in: 20967095 Bytes out: 336345772 Requests: 130273 Commands: 260546 Duration: 10542.935 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 130273 20967095 336345772 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.13.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.4:443 Loopback10 : https://198.18.0.38:443 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_output_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest does not have output errors | 0.15 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0| TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|. GIVEN interface output errors is |0|. WHEN interface outputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_output_errors_on_ exists in results file at index 10 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_output_errors_on_ with parameters {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_system_accounting_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA system accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA accounting methods for default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_system_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:448 TEST is system accounting methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:450 GIVEN default system accounting method list: |[]| and console system accounting methodlist: |[]| INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:466 WHEN default system accounting method list: |[]| and console system accounting method list: |[]| INFO root:test_aaa.py:471 THEN test case result is |True| INFO root:test_aaa.py:472 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/api/test_api.py::APITests::test_if_management_local_http_api_server_is_running_on_[kg-topology-CloudEosRR2] | Verify management api local httpserver is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| Local HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_local_http_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:215 TEST is local HTTP API running on |kg-topology-CloudEosRR2| INFO root:test_api.py:216 GIVEN local HTTP API state is |False| INFO root:tests_tools.py:372 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show management api http-commands| on kg-topology-CloudEosRR2 INFO root:test_api.py:226 WHEN HTTP API state is |False| INFO root:test_api.py:229 THEN test case result is |True| INFO root:test_api.py:230 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 137639 Last hit: 0 seconds ago Bytes in: 20967095 Bytes out: 336345772 Requests: 130273 Commands: 260546 Duration: 10542.935 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 130273 20967095 336345772 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.13.101:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.4:443 Loopback10 : https://198.18.0.38:443 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/filesystem/test_filesystem.py::FileSystemTests::test_if_files_on_[kg-topology-CloudEosRR2] | Verify filesystem is correct and expected files are present | 0.69 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: flash:startup-config file isDir state is |False| On router |kg-topology-CloudEosRR2|: flash:veos-config file isDir state is |False| On router |kg-topology-CloudEosRR2|: flash:zerotouch-config file isDir state is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_filesystem.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_files_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True} INFO root:test_filesystem.py:70 TEST is flash:startup-config file present on |kg-topology-CloudEosRR2| INFO root:test_filesystem.py:71 GIVEN expected flash:startup-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:startup-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)), 'name': 'kg-topology-CloudEosRR2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Loopback0': {'lastStatusChangeTimestamp': 1597281703.2126422, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.4'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281552.0032377, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '06:54:9b:7c:b0:0f', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463006.847228, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:54:9b:7c:b0:0f', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281549.9021823, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:54:9b:a1:17:56', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 34364.75899695656, 'inPktsRate': 31.63535601613023, 'outBitsRate': 65029.62037302836, 'updateInterval': 300.0, 'outPktsRate': 34.72795360521441}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 81218701, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463006.848388, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 9047178758, 'outDiscards': 0, 'outOctets': 15355078697, 'inUcastPkts': 72480938, 'inTotalPkts': 72480938, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '11.201.13.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:54:9b:a1:17:56', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281529.286236, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.38'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR2', 'hostname': 'kg-topology-CloudEosRR2'}, 'text': 'Hostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 3181548.66, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '93F97AD3A1044C742872BA1CFA684D63', 'systemMacAddress': '06:54:9b:7c:b0:0f', 'bootupTimestamp': 1597281459.0, 'memFree': 3002556, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 3002564 kB\n\n'}, 'show processes': {'json': {'processes': {'2009': {'totalActiveTime': 3256622, 'memPct': 3.4, 'cpuPct': 102.0, 'startTime': 1597281536.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '20891': {'totalActiveTime': 18, 'memPct': 0.9, 'cpuPct': 1.7, 'startTime': 1600461906.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1714': {'totalActiveTime': 12887, 'memPct': 1.9, 'cpuPct': 0.4, 'startTime': 1597281523.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1255': {'totalActiveTime': 6027, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1566': {'totalActiveTime': 6273, 'memPct': 7.3, 'cpuPct': 0.1, 'startTime': 1597281501.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1': {'totalActiveTime': 309, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 28, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '6': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '7': {'totalActiveTime': 50, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 4, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 87, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281459.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '346': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:2]', 'state': 'S', 'ttyName': '?'}, '384': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '732': {'totalActiveTime': 90, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '734': {'totalActiveTime': 61, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '742': {'totalActiveTime': 187, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '777': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '797': {'totalActiveTime': 17, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '812': {'totalActiveTime': 24, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '823': {'totalActiveTime': 6, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '951': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '979': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '991': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1043': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281473.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1163': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1164': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1197': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1238': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1240': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1254': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1462': {'totalActiveTime': 705, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1470': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1485': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1522': {'totalActiveTime': 165, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1523': {'totalActiveTime': 2351, 'memPct': 2.5, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1565': {'totalActiveTime': 47, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 114, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1571': {'totalActiveTime': 42, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281502.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1694': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1695': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1696': {'totalActiveTime': 600, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1702': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1704': {'totalActiveTime': 234, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1711': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1712': {'totalActiveTime': 140, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1723': {'totalActiveTime': 279, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1727': {'totalActiveTime': 1108, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1729': {'totalActiveTime': 2240, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 242, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1736': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1737': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1738': {'totalActiveTime': 188, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 488, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1745': {'totalActiveTime': 1702, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1749': {'totalActiveTime': 42, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1751': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1753': {'totalActiveTime': 2546, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 95, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 635, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1760': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 223, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1763': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1764': {'totalActiveTime': 1262, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1771': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 310, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1780': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1782': {'totalActiveTime': 143, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1800': {'totalActiveTime': 197, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1810': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1813': {'totalActiveTime': 215, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1830': {'totalActiveTime': 295, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1850': {'totalActiveTime': 225, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1855': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 173, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1872': {'totalActiveTime': 142, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1876': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1880': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1883': {'totalActiveTime': 75, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1885': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1886': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1887': {'totalActiveTime': 112, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1889': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1890': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1892': {'totalActiveTime': 40, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1893': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1895': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1905': {'totalActiveTime': 425, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1913': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1916': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 41, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1923': {'totalActiveTime': 231, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1933': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1935': {'totalActiveTime': 142, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1938': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1940': {'totalActiveTime': 516, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1943': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1944': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1945': {'totalActiveTime': 147, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1957': {'totalActiveTime': 248, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1964': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1965': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1966': {'totalActiveTime': 145, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1974': {'totalActiveTime': 714, 'memPct': 2.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2002': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2008': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2286': {'totalActiveTime': 36, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2340': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2602': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2603': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2605': {'totalActiveTime': 43, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2656': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2658': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2664': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2667': {'totalActiveTime': 23, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2668': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281550.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2736': {'totalActiveTime': 625, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2739': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2766': {'totalActiveTime': 65, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2770': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3341': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3343': {'totalActiveTime': 106, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '18367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18369': {'totalActiveTime': 157, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18415': {'totalActiveTime': 135, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '20284': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461601.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '20844': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461905.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '20882': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461905.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '23316': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462261.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '24800': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462620.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '26215': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462860.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '26705': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600463006.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3181549.07, 'loadAvg': [1.27, 1.36, 1.32], 'users': 0, 'currentTime': 1600463008.036059}}, 'text': " 21:03:28 up 36 days, 19:45, 0 users, load average: 1.27, 1.36, 1.32\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2009 102 3.4 ? Sl Aug 13 37-16:37:02 Sfe\n20891 1.7 0.9 ? SNl 20:45:06 00:00:18 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1714 0.4 1.9 ? Sl Aug 13 03:34:47 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1255 0.1 0.9 ? S Aug 13 01:40:27 ProcMgr-worker\n 1566 0.1 7.3 ? Sl Aug 13 01:44:33 ConfigAgent\n 1 0.0 0.0 ? Ss Aug 13 00:05:09 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:28 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 7 0.0 0.0 ? S Aug 13 00:00:50 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:04 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:27 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2]\n 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 732 0.0 0.0 ? Ss Aug 13 00:01:30 /usr/lib/systemd/systemd-logind\n 734 0.0 0.0 ? Ss Aug 13 00:01:01 /usr/bin/ProcMonitor\n 742 0.0 0.1 ? Ss Aug 13 00:03:07 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 797 0.0 0.0 ? Ss Aug 13 00:00:17 /usr/sbin/crond -n\n 812 0.0 0.0 ? S<s Aug 13 00:00:24 /usr/bin/wdogdev -t 60\n 823 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 979 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1462 0.0 0.0 ? S Aug 13 00:11:45 /usr/bin/EosOomAdjust\n 1470 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu]\n 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1522 0.0 0.0 ? S Aug 13 00:02:45 /usr/bin/SlabMonitor\n 1523 0.0 2.5 ? S Aug 13 00:39:11 Sysdb\n 1565 0.0 1.2 ? S Aug 13 00:00:47 StageMgr\n 1570 0.0 1.4 ? S Aug 13 00:01:54 Fru\n 1571 0.0 1.8 ? S Aug 13 00:00:42 Launcher\n 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1696 0.0 1.2 ? S Aug 13 00:10:00 Lldp\n 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1704 0.0 1.2 ? S Aug 13 00:03:54 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1712 0.0 1.1 ? S Aug 13 00:02:20 PortSec\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1723 0.0 1.4 ? S Aug 13 00:04:39 Bfd\n 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1727 0.0 1.3 ? S Aug 13 00:18:28 Lag\n 1729 0.0 1.7 ? S Aug 13 00:37:20 SuperServer\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.5 ? S Aug 13 00:04:02 Ira\n 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1738 0.0 1.1 ? S Aug 13 00:03:08 LedPolicy\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.3 ? S Aug 13 00:08:08 EventMgr\n 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1745 0.0 1.2 ? S Aug 13 00:28:22 StpTxRx\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1749 0.0 1.1 ? S Aug 13 00:00:42 StandbyCpld\n 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1753 0.0 1.0 ? S Aug 13 00:42:26 AgentMonitor\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.2 ? S Aug 13 00:01:35 Tunnel\n 1757 0.0 1.5 ? Sl Aug 13 00:10:35 Aaa\n 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 1.2 ? S Aug 13 00:03:43 StpTopology\n 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1764 0.0 1.4 ? S Aug 13 00:21:02 Acl\n 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.1 ? S Aug 13 00:05:10 Stp\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1782 0.0 1.1 ? S Aug 13 00:02:23 KernelNetworkInfo\n 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1800 0.0 1.2 ? S Aug 13 00:03:17 McastCommon6\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1813 0.0 1.2 ? S Aug 13 00:03:35 LacpTxAgent\n 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1830 0.0 1.5 ? S Aug 13 00:04:55 Arp\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1850 0.0 1.4 ? S Aug 13 00:03:45 KernelFib\n 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1866 0.0 1.2 ? S Aug 13 00:02:53 Qos\n 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1872 0.0 1.1 ? S Aug 13 00:02:22 Thermostat\n 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1883 0.0 1.2 ? S Aug 13 00:01:15 L2Rib\n 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1887 0.0 1.2 ? S Aug 13 00:01:52 TopoAgent\n 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1892 0.0 1.0 ? S Aug 13 00:00:40 PowerFuse\n 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1895 0.0 1.1 ? S Aug 13 00:00:41 PowerManager\n 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1905 0.0 1.4 ? S Aug 13 00:07:05 Ebra\n 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1916 0.0 1.1 ? S Aug 13 00:00:41 ReloadCauseAgent\n 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.0 ? S Aug 13 00:00:41 SharedSecretProfile\n 1923 0.0 1.5 ? S Aug 13 00:03:51 IgmpSnooping\n 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1935 0.0 1.3 ? S Aug 13 00:02:22 StaticRoute\n 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1940 0.0 1.6 ? S Aug 13 00:08:36 IpRib\n 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1945 0.0 1.8 ? S Aug 13 00:02:27 BgpCliHelper\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1957 0.0 1.3 ? S Aug 13 00:04:08 ConnectedRoute\n 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1966 0.0 1.3 ? S Aug 13 00:02:25 RouteInput\n 1974 0.0 2.2 ? Sl Aug 13 00:11:54 Bgp\n 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2286 0.0 0.0 ? Ssl Aug 13 00:00:36 /usr/sbin/rsyslogd -n\n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2605 0.0 1.1 ? S Aug 13 00:00:43 LicenseManager\n 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2667 0.0 0.0 ? S Aug 13 00:00:23 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console\n 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2736 0.0 1.2 ? S Aug 13 00:10:25 Ipsec\n 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2766 0.0 0.1 ? Ssl Aug 13 00:01:05 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3343 0.0 0.1 ? Ssl Aug 13 00:01:46 /usr/libexec/strongswan/charon --use-syslog\n18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18369 0.0 1.3 ? Sl Aug 14 00:02:37 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18415 0.0 0.1 ? S Aug 14 00:02:15 nginx: worker process \n20284 0.0 0.0 ? S 20:40:01 00:00:00 [kworker/0:3]\n20844 0.0 0.0 ? S 20:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n20882 0.0 0.0 ? S 20:45:05 00:00:00 [kworker/0:1]\n23316 0.0 0.0 ? S 20:51:01 00:00:00 [kworker/0:2]\n24800 0.0 0.0 ? S 20:57:00 00:00:00 [kworker/0:0]\n26215 0.0 0.0 ? S 21:01:00 00:00:00 [kworker/0:4]\n26724 0.0 0.0 ? Rs 21:03:27 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 140580, 'authorizationAllowed': 1342, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 0, 'authenticationUnavailable': 122, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 140584\n Failed: 0\n Service unavailable: 122\n\nAuthorization\n Allowed: 1342\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'140685': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600462995, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n140685 kgrozis command-api E 0:00:15 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 20, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 20 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.118, 'jitter': 0.656, 'lastReceived': 1600462548.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': -0.271, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 465 1024 377 0.118 -0.271 0.656\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281524.130704, 'pid': 1714, 'enabled': True, 'uptime': 3181489.51, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1714)\nUptime: 36 days, 19:44:49 (Start time: Thu Aug 13 01:18:44 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293399040 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293399040 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 130274, 'bytesOut': 336346994, 'lastHitTime': 1600463015.0102181, 'bytesIn': 20967260}}, 'bytesOut': 336346994, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 137640, 'vrf': 'default', 'lastHitTime': 1600463015.0101871, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 10542.94297094192, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 130274, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.13.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.4:443', 'Loopback10 : https://198.18.0.38:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 20967260, 'commandCount': 260548, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 137642\nLast hit: 0 seconds ago\nBytes in: 20967590\nBytes out: 336349224\nRequests: 130276\nCommands: 260552\nDuration: 10542.970 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 130276 20967590 336349224 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.13.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.4:443 \nLoopback10 : https://198.18.0.38:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:27:38 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:43 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:33 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:27 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:33 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:41 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:16 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:32 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:43 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:49 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:57 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:12 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:22 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:27:38 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:43 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:33 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:27 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:33 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:41 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:16 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:32 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:43 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:49 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:57 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:12 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:22 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:startup-config with connnection Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:startup-config on dut kg-topology-CloudEosRR2: [{'command': 'show file information flash:startup-config', 'result': {'isDir': False, 'path': 'flash:/startup-config', 'fileName': '/mnt/flash/startup-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:startup-config on dut kg-topology-CloudEosRR2: [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/startup-config: type is file INFO root:test_filesystem.py:80 WHEN flash:startup-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:startup-config| is : [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:veos-config file present on |kg-topology-CloudEosRR2| INFO root:test_filesystem.py:71 GIVEN expected flash:veos-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:veos-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)), 'name': 'kg-topology-CloudEosRR2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Loopback0': {'lastStatusChangeTimestamp': 1597281703.2126422, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.4'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281552.0032377, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '06:54:9b:7c:b0:0f', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463006.847228, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:54:9b:7c:b0:0f', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281549.9021823, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:54:9b:a1:17:56', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 34364.75899695656, 'inPktsRate': 31.63535601613023, 'outBitsRate': 65029.62037302836, 'updateInterval': 300.0, 'outPktsRate': 34.72795360521441}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 81218701, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463006.848388, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 9047178758, 'outDiscards': 0, 'outOctets': 15355078697, 'inUcastPkts': 72480938, 'inTotalPkts': 72480938, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '11.201.13.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:54:9b:a1:17:56', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281529.286236, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.38'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR2', 'hostname': 'kg-topology-CloudEosRR2'}, 'text': 'Hostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 3181548.66, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '93F97AD3A1044C742872BA1CFA684D63', 'systemMacAddress': '06:54:9b:7c:b0:0f', 'bootupTimestamp': 1597281459.0, 'memFree': 3002556, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 3002564 kB\n\n'}, 'show processes': {'json': {'processes': {'2009': {'totalActiveTime': 3256622, 'memPct': 3.4, 'cpuPct': 102.0, 'startTime': 1597281536.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '20891': {'totalActiveTime': 18, 'memPct': 0.9, 'cpuPct': 1.7, 'startTime': 1600461906.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1714': {'totalActiveTime': 12887, 'memPct': 1.9, 'cpuPct': 0.4, 'startTime': 1597281523.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1255': {'totalActiveTime': 6027, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1566': {'totalActiveTime': 6273, 'memPct': 7.3, 'cpuPct': 0.1, 'startTime': 1597281501.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1': {'totalActiveTime': 309, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 28, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '6': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '7': {'totalActiveTime': 50, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 4, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 87, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281459.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '346': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:2]', 'state': 'S', 'ttyName': '?'}, '384': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '732': {'totalActiveTime': 90, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '734': {'totalActiveTime': 61, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '742': {'totalActiveTime': 187, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '777': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '797': {'totalActiveTime': 17, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '812': {'totalActiveTime': 24, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '823': {'totalActiveTime': 6, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '951': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '979': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '991': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1043': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281473.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1163': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1164': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1197': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1238': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1240': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1254': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1462': {'totalActiveTime': 705, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1470': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1485': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1522': {'totalActiveTime': 165, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1523': {'totalActiveTime': 2351, 'memPct': 2.5, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1565': {'totalActiveTime': 47, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 114, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1571': {'totalActiveTime': 42, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281502.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1694': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1695': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1696': {'totalActiveTime': 600, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1702': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1704': {'totalActiveTime': 234, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1711': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1712': {'totalActiveTime': 140, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1723': {'totalActiveTime': 279, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1727': {'totalActiveTime': 1108, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1729': {'totalActiveTime': 2240, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 242, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1736': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1737': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1738': {'totalActiveTime': 188, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 488, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1745': {'totalActiveTime': 1702, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1749': {'totalActiveTime': 42, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1751': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1753': {'totalActiveTime': 2546, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 95, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 635, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1760': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 223, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1763': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1764': {'totalActiveTime': 1262, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1771': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 310, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1780': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1782': {'totalActiveTime': 143, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1800': {'totalActiveTime': 197, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1810': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1813': {'totalActiveTime': 215, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1830': {'totalActiveTime': 295, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1850': {'totalActiveTime': 225, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1855': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 173, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1872': {'totalActiveTime': 142, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1876': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1880': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1883': {'totalActiveTime': 75, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1885': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1886': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1887': {'totalActiveTime': 112, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1889': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1890': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1892': {'totalActiveTime': 40, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1893': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1895': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1905': {'totalActiveTime': 425, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1913': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1916': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 41, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1923': {'totalActiveTime': 231, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1933': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1935': {'totalActiveTime': 142, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1938': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1940': {'totalActiveTime': 516, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1943': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1944': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1945': {'totalActiveTime': 147, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1957': {'totalActiveTime': 248, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1964': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1965': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1966': {'totalActiveTime': 145, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1974': {'totalActiveTime': 714, 'memPct': 2.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2002': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2008': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2286': {'totalActiveTime': 36, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2340': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2602': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2603': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2605': {'totalActiveTime': 43, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2656': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2658': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2664': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2667': {'totalActiveTime': 23, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2668': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281550.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2736': {'totalActiveTime': 625, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2739': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2766': {'totalActiveTime': 65, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2770': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3341': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3343': {'totalActiveTime': 106, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '18367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18369': {'totalActiveTime': 157, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18415': {'totalActiveTime': 135, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '20284': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461601.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '20844': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461905.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '20882': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461905.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '23316': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462261.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '24800': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462620.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '26215': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462860.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '26705': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600463006.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3181549.07, 'loadAvg': [1.27, 1.36, 1.32], 'users': 0, 'currentTime': 1600463008.036059}}, 'text': " 21:03:28 up 36 days, 19:45, 0 users, load average: 1.27, 1.36, 1.32\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2009 102 3.4 ? Sl Aug 13 37-16:37:02 Sfe\n20891 1.7 0.9 ? SNl 20:45:06 00:00:18 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1714 0.4 1.9 ? Sl Aug 13 03:34:47 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1255 0.1 0.9 ? S Aug 13 01:40:27 ProcMgr-worker\n 1566 0.1 7.3 ? Sl Aug 13 01:44:33 ConfigAgent\n 1 0.0 0.0 ? Ss Aug 13 00:05:09 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:28 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 7 0.0 0.0 ? S Aug 13 00:00:50 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:04 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:27 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2]\n 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 732 0.0 0.0 ? Ss Aug 13 00:01:30 /usr/lib/systemd/systemd-logind\n 734 0.0 0.0 ? Ss Aug 13 00:01:01 /usr/bin/ProcMonitor\n 742 0.0 0.1 ? Ss Aug 13 00:03:07 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 797 0.0 0.0 ? Ss Aug 13 00:00:17 /usr/sbin/crond -n\n 812 0.0 0.0 ? S<s Aug 13 00:00:24 /usr/bin/wdogdev -t 60\n 823 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 979 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1462 0.0 0.0 ? S Aug 13 00:11:45 /usr/bin/EosOomAdjust\n 1470 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu]\n 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1522 0.0 0.0 ? S Aug 13 00:02:45 /usr/bin/SlabMonitor\n 1523 0.0 2.5 ? S Aug 13 00:39:11 Sysdb\n 1565 0.0 1.2 ? S Aug 13 00:00:47 StageMgr\n 1570 0.0 1.4 ? S Aug 13 00:01:54 Fru\n 1571 0.0 1.8 ? S Aug 13 00:00:42 Launcher\n 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1696 0.0 1.2 ? S Aug 13 00:10:00 Lldp\n 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1704 0.0 1.2 ? S Aug 13 00:03:54 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1712 0.0 1.1 ? S Aug 13 00:02:20 PortSec\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1723 0.0 1.4 ? S Aug 13 00:04:39 Bfd\n 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1727 0.0 1.3 ? S Aug 13 00:18:28 Lag\n 1729 0.0 1.7 ? S Aug 13 00:37:20 SuperServer\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.5 ? S Aug 13 00:04:02 Ira\n 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1738 0.0 1.1 ? S Aug 13 00:03:08 LedPolicy\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.3 ? S Aug 13 00:08:08 EventMgr\n 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1745 0.0 1.2 ? S Aug 13 00:28:22 StpTxRx\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1749 0.0 1.1 ? S Aug 13 00:00:42 StandbyCpld\n 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1753 0.0 1.0 ? S Aug 13 00:42:26 AgentMonitor\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.2 ? S Aug 13 00:01:35 Tunnel\n 1757 0.0 1.5 ? Sl Aug 13 00:10:35 Aaa\n 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 1.2 ? S Aug 13 00:03:43 StpTopology\n 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1764 0.0 1.4 ? S Aug 13 00:21:02 Acl\n 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.1 ? S Aug 13 00:05:10 Stp\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1782 0.0 1.1 ? S Aug 13 00:02:23 KernelNetworkInfo\n 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1800 0.0 1.2 ? S Aug 13 00:03:17 McastCommon6\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1813 0.0 1.2 ? S Aug 13 00:03:35 LacpTxAgent\n 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1830 0.0 1.5 ? S Aug 13 00:04:55 Arp\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1850 0.0 1.4 ? S Aug 13 00:03:45 KernelFib\n 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1866 0.0 1.2 ? S Aug 13 00:02:53 Qos\n 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1872 0.0 1.1 ? S Aug 13 00:02:22 Thermostat\n 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1883 0.0 1.2 ? S Aug 13 00:01:15 L2Rib\n 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1887 0.0 1.2 ? S Aug 13 00:01:52 TopoAgent\n 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1892 0.0 1.0 ? S Aug 13 00:00:40 PowerFuse\n 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1895 0.0 1.1 ? S Aug 13 00:00:41 PowerManager\n 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1905 0.0 1.4 ? S Aug 13 00:07:05 Ebra\n 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1916 0.0 1.1 ? S Aug 13 00:00:41 ReloadCauseAgent\n 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.0 ? S Aug 13 00:00:41 SharedSecretProfile\n 1923 0.0 1.5 ? S Aug 13 00:03:51 IgmpSnooping\n 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1935 0.0 1.3 ? S Aug 13 00:02:22 StaticRoute\n 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1940 0.0 1.6 ? S Aug 13 00:08:36 IpRib\n 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1945 0.0 1.8 ? S Aug 13 00:02:27 BgpCliHelper\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1957 0.0 1.3 ? S Aug 13 00:04:08 ConnectedRoute\n 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1966 0.0 1.3 ? S Aug 13 00:02:25 RouteInput\n 1974 0.0 2.2 ? Sl Aug 13 00:11:54 Bgp\n 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2286 0.0 0.0 ? Ssl Aug 13 00:00:36 /usr/sbin/rsyslogd -n\n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2605 0.0 1.1 ? S Aug 13 00:00:43 LicenseManager\n 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2667 0.0 0.0 ? S Aug 13 00:00:23 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console\n 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2736 0.0 1.2 ? S Aug 13 00:10:25 Ipsec\n 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2766 0.0 0.1 ? Ssl Aug 13 00:01:05 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3343 0.0 0.1 ? Ssl Aug 13 00:01:46 /usr/libexec/strongswan/charon --use-syslog\n18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18369 0.0 1.3 ? Sl Aug 14 00:02:37 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18415 0.0 0.1 ? S Aug 14 00:02:15 nginx: worker process \n20284 0.0 0.0 ? S 20:40:01 00:00:00 [kworker/0:3]\n20844 0.0 0.0 ? S 20:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n20882 0.0 0.0 ? S 20:45:05 00:00:00 [kworker/0:1]\n23316 0.0 0.0 ? S 20:51:01 00:00:00 [kworker/0:2]\n24800 0.0 0.0 ? S 20:57:00 00:00:00 [kworker/0:0]\n26215 0.0 0.0 ? S 21:01:00 00:00:00 [kworker/0:4]\n26724 0.0 0.0 ? Rs 21:03:27 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 140580, 'authorizationAllowed': 1342, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 0, 'authenticationUnavailable': 122, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 140584\n Failed: 0\n Service unavailable: 122\n\nAuthorization\n Allowed: 1342\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'140685': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600462995, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n140685 kgrozis command-api E 0:00:15 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 20, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 20 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.118, 'jitter': 0.656, 'lastReceived': 1600462548.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': -0.271, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 465 1024 377 0.118 -0.271 0.656\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281524.130704, 'pid': 1714, 'enabled': True, 'uptime': 3181489.51, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1714)\nUptime: 36 days, 19:44:49 (Start time: Thu Aug 13 01:18:44 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293399040 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293399040 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 130274, 'bytesOut': 336346994, 'lastHitTime': 1600463015.0102181, 'bytesIn': 20967260}}, 'bytesOut': 336346994, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 137640, 'vrf': 'default', 'lastHitTime': 1600463015.0101871, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 10542.94297094192, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 130274, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.13.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.4:443', 'Loopback10 : https://198.18.0.38:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 20967260, 'commandCount': 260548, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 137642\nLast hit: 0 seconds ago\nBytes in: 20967590\nBytes out: 336349224\nRequests: 130276\nCommands: 260552\nDuration: 10542.970 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 130276 20967590 336349224 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.13.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.4:443 \nLoopback10 : https://198.18.0.38:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:27:38 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:43 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:33 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:27 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:33 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:41 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:16 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:32 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:43 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:49 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:57 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:12 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:22 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:27:38 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:43 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:33 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:27 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:33 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:41 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:16 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:32 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:43 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:49 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:57 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:12 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:22 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:veos-config with connnection Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:veos-config on dut kg-topology-CloudEosRR2: [{'command': 'show file information flash:veos-config', 'result': {'isDir': False, 'path': 'flash:/veos-config', 'fileName': '/mnt/flash/veos-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:veos-config on dut kg-topology-CloudEosRR2: [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/veos-config: type is file INFO root:test_filesystem.py:80 WHEN flash:veos-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:veos-config| is : [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:zerotouch-config file present on |kg-topology-CloudEosRR2| INFO root:test_filesystem.py:71 GIVEN expected flash:zerotouch-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:zerotouch-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)), 'name': 'kg-topology-CloudEosRR2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEosRR2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Loopback0': {'lastStatusChangeTimestamp': 1597281703.2126422, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.4'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281552.0032377, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '06:54:9b:7c:b0:0f', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463006.847228, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:54:9b:7c:b0:0f', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281549.9021823, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:54:9b:a1:17:56', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 34364.75899695656, 'inPktsRate': 31.63535601613023, 'outBitsRate': 65029.62037302836, 'updateInterval': 300.0, 'outPktsRate': 34.72795360521441}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 81218701, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463006.848388, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 9047178758, 'outDiscards': 0, 'outOctets': 15355078697, 'inUcastPkts': 72480938, 'inTotalPkts': 72480938, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '11.201.13.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:54:9b:a1:17:56', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281529.286236, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.38'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 14 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEosRR2', 'hostname': 'kg-topology-CloudEosRR2'}, 'text': 'Hostname: kg-topology-CloudEosRR2\nFQDN: kg-topology-CloudEosRR2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 3181548.66, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': '93F97AD3A1044C742872BA1CFA684D63', 'systemMacAddress': '06:54:9b:7c:b0:0f', 'bootupTimestamp': 1597281459.0, 'memFree': 3002556, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 3002564 kB\n\n'}, 'show processes': {'json': {'processes': {'2009': {'totalActiveTime': 3256622, 'memPct': 3.4, 'cpuPct': 102.0, 'startTime': 1597281536.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '20891': {'totalActiveTime': 18, 'memPct': 0.9, 'cpuPct': 1.7, 'startTime': 1600461906.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1714': {'totalActiveTime': 12887, 'memPct': 1.9, 'cpuPct': 0.4, 'startTime': 1597281523.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1255': {'totalActiveTime': 6027, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1566': {'totalActiveTime': 6273, 'memPct': 7.3, 'cpuPct': 0.1, 'startTime': 1597281501.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1': {'totalActiveTime': 309, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 28, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '6': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '7': {'totalActiveTime': 50, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 4, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 87, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281458.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281459.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '346': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:2]', 'state': 'S', 'ttyName': '?'}, '384': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '732': {'totalActiveTime': 90, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '734': {'totalActiveTime': 61, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '742': {'totalActiveTime': 187, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '777': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '797': {'totalActiveTime': 17, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '812': {'totalActiveTime': 24, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '823': {'totalActiveTime': 6, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281469.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '951': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '979': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '990': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '991': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281471.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1043': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281473.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1163': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1164': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1197': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1238': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1240': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281483.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1254': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281484.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1462': {'totalActiveTime': 705, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1470': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1485': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1522': {'totalActiveTime': 165, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1523': {'totalActiveTime': 2351, 'memPct': 2.5, 'cpuPct': 0.0, 'startTime': 1597281498.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1565': {'totalActiveTime': 47, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1570': {'totalActiveTime': 114, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281501.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1571': {'totalActiveTime': 42, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281502.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1694': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1695': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1696': {'totalActiveTime': 600, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1699': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1702': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1704': {'totalActiveTime': 234, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1711': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1712': {'totalActiveTime': 140, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1723': {'totalActiveTime': 279, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1727': {'totalActiveTime': 1108, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1729': {'totalActiveTime': 2240, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1733': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1734': {'totalActiveTime': 242, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1736': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1737': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1738': {'totalActiveTime': 188, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1740': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1741': {'totalActiveTime': 488, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1743': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1745': {'totalActiveTime': 1702, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281525.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1746': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1749': {'totalActiveTime': 42, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1751': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1753': {'totalActiveTime': 2546, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1755': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1756': {'totalActiveTime': 95, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1757': {'totalActiveTime': 635, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1760': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1761': {'totalActiveTime': 223, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281526.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1763': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1764': {'totalActiveTime': 1262, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1771': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 310, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281527.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1780': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1782': {'totalActiveTime': 143, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1800': {'totalActiveTime': 197, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1810': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1813': {'totalActiveTime': 215, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281528.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1830': {'totalActiveTime': 295, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281529.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1850': {'totalActiveTime': 225, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1855': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 173, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281530.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1872': {'totalActiveTime': 142, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1876': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1880': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1883': {'totalActiveTime': 75, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1885': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1886': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1887': {'totalActiveTime': 112, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1889': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1890': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1892': {'totalActiveTime': 40, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1893': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281531.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1895': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1896': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1900': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1905': {'totalActiveTime': 425, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1913': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1916': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1922': {'totalActiveTime': 41, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1923': {'totalActiveTime': 231, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1933': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1935': {'totalActiveTime': 142, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1938': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1940': {'totalActiveTime': 516, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1943': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1944': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1945': {'totalActiveTime': 147, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1957': {'totalActiveTime': 248, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1964': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1965': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1966': {'totalActiveTime': 145, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1974': {'totalActiveTime': 714, 'memPct': 2.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '2002': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2008': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2286': {'totalActiveTime': 36, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2340': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '2602': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2603': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2605': {'totalActiveTime': 43, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2656': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2658': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2664': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2667': {'totalActiveTime': 23, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2668': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281548.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281550.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2736': {'totalActiveTime': 625, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2739': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281551.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2766': {'totalActiveTime': 65, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2770': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281556.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3341': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3343': {'totalActiveTime': 106, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281703.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '18367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18369': {'totalActiveTime': 157, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597436449.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '18413': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '18415': {'totalActiveTime': 135, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597436450.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '20284': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461601.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '20844': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461905.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '20882': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461905.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '23316': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462261.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '24800': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462620.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '26215': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462860.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '26705': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600463006.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3181549.07, 'loadAvg': [1.27, 1.36, 1.32], 'users': 0, 'currentTime': 1600463008.036059}}, 'text': " 21:03:28 up 36 days, 19:45, 0 users, load average: 1.27, 1.36, 1.32\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2009 102 3.4 ? Sl Aug 13 37-16:37:02 Sfe\n20891 1.7 0.9 ? SNl 20:45:06 00:00:18 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1714 0.4 1.9 ? Sl Aug 13 03:34:47 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1255 0.1 0.9 ? S Aug 13 01:40:27 ProcMgr-worker\n 1566 0.1 7.3 ? Sl Aug 13 01:44:33 ConfigAgent\n 1 0.0 0.0 ? Ss Aug 13 00:05:09 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:28 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 7 0.0 0.0 ? S Aug 13 00:00:50 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:04 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:27 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2]\n 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 732 0.0 0.0 ? Ss Aug 13 00:01:30 /usr/lib/systemd/systemd-logind\n 734 0.0 0.0 ? Ss Aug 13 00:01:01 /usr/bin/ProcMonitor\n 742 0.0 0.1 ? Ss Aug 13 00:03:07 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 797 0.0 0.0 ? Ss Aug 13 00:00:17 /usr/sbin/crond -n\n 812 0.0 0.0 ? S<s Aug 13 00:00:24 /usr/bin/wdogdev -t 60\n 823 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 979 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1462 0.0 0.0 ? S Aug 13 00:11:45 /usr/bin/EosOomAdjust\n 1470 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu]\n 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1522 0.0 0.0 ? S Aug 13 00:02:45 /usr/bin/SlabMonitor\n 1523 0.0 2.5 ? S Aug 13 00:39:11 Sysdb\n 1565 0.0 1.2 ? S Aug 13 00:00:47 StageMgr\n 1570 0.0 1.4 ? S Aug 13 00:01:54 Fru\n 1571 0.0 1.8 ? S Aug 13 00:00:42 Launcher\n 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1696 0.0 1.2 ? S Aug 13 00:10:00 Lldp\n 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1704 0.0 1.2 ? S Aug 13 00:03:54 McastCommon\n 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1712 0.0 1.1 ? S Aug 13 00:02:20 PortSec\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1723 0.0 1.4 ? S Aug 13 00:04:39 Bfd\n 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1727 0.0 1.3 ? S Aug 13 00:18:28 Lag\n 1729 0.0 1.7 ? S Aug 13 00:37:20 SuperServer\n 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1734 0.0 1.5 ? S Aug 13 00:04:02 Ira\n 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1738 0.0 1.1 ? S Aug 13 00:03:08 LedPolicy\n 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1741 0.0 1.3 ? S Aug 13 00:08:08 EventMgr\n 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1745 0.0 1.2 ? S Aug 13 00:28:22 StpTxRx\n 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1749 0.0 1.1 ? S Aug 13 00:00:42 StandbyCpld\n 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1753 0.0 1.0 ? S Aug 13 00:42:26 AgentMonitor\n 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1756 0.0 1.2 ? S Aug 13 00:01:35 Tunnel\n 1757 0.0 1.5 ? Sl Aug 13 00:10:35 Aaa\n 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1761 0.0 1.2 ? S Aug 13 00:03:43 StpTopology\n 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1764 0.0 1.4 ? S Aug 13 00:21:02 Acl\n 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.1 ? S Aug 13 00:05:10 Stp\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1782 0.0 1.1 ? S Aug 13 00:02:23 KernelNetworkInfo\n 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1800 0.0 1.2 ? S Aug 13 00:03:17 McastCommon6\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1813 0.0 1.2 ? S Aug 13 00:03:35 LacpTxAgent\n 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1830 0.0 1.5 ? S Aug 13 00:04:55 Arp\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1850 0.0 1.4 ? S Aug 13 00:03:45 KernelFib\n 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1866 0.0 1.2 ? S Aug 13 00:02:53 Qos\n 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1872 0.0 1.1 ? S Aug 13 00:02:22 Thermostat\n 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1883 0.0 1.2 ? S Aug 13 00:01:15 L2Rib\n 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1887 0.0 1.2 ? S Aug 13 00:01:52 TopoAgent\n 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1892 0.0 1.0 ? S Aug 13 00:00:40 PowerFuse\n 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1895 0.0 1.1 ? S Aug 13 00:00:41 PowerManager\n 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1905 0.0 1.4 ? S Aug 13 00:07:05 Ebra\n 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1916 0.0 1.1 ? S Aug 13 00:00:41 ReloadCauseAgent\n 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1922 0.0 1.0 ? S Aug 13 00:00:41 SharedSecretProfile\n 1923 0.0 1.5 ? S Aug 13 00:03:51 IgmpSnooping\n 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1935 0.0 1.3 ? S Aug 13 00:02:22 StaticRoute\n 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1940 0.0 1.6 ? S Aug 13 00:08:36 IpRib\n 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1945 0.0 1.8 ? S Aug 13 00:02:27 BgpCliHelper\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1957 0.0 1.3 ? S Aug 13 00:04:08 ConnectedRoute\n 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1966 0.0 1.3 ? S Aug 13 00:02:25 RouteInput\n 1974 0.0 2.2 ? Sl Aug 13 00:11:54 Bgp\n 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2286 0.0 0.0 ? Ssl Aug 13 00:00:36 /usr/sbin/rsyslogd -n\n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2605 0.0 1.1 ? S Aug 13 00:00:43 LicenseManager\n 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2667 0.0 0.0 ? S Aug 13 00:00:23 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console\n 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2736 0.0 1.2 ? S Aug 13 00:10:25 Ipsec\n 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2766 0.0 0.1 ? Ssl Aug 13 00:01:05 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3343 0.0 0.1 ? Ssl Aug 13 00:01:46 /usr/libexec/strongswan/charon --use-syslog\n18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18369 0.0 1.3 ? Sl Aug 14 00:02:37 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n18415 0.0 0.1 ? S Aug 14 00:02:15 nginx: worker process \n20284 0.0 0.0 ? S 20:40:01 00:00:00 [kworker/0:3]\n20844 0.0 0.0 ? S 20:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n20882 0.0 0.0 ? S 20:45:05 00:00:00 [kworker/0:1]\n23316 0.0 0.0 ? S 20:51:01 00:00:00 [kworker/0:2]\n24800 0.0 0.0 ? S 20:57:00 00:00:00 [kworker/0:0]\n26215 0.0 0.0 ? S 21:01:00 00:00:00 [kworker/0:4]\n26724 0.0 0.0 ? Rs 21:03:27 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 140580, 'authorizationAllowed': 1342, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 0, 'authenticationUnavailable': 122, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 140584\n Failed: 0\n Service unavailable: 122\n\nAuthorization\n Allowed: 1342\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'140685': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600462995, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n140685 kgrozis command-api E 0:00:15 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 20, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 20 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.118, 'jitter': 0.656, 'lastReceived': 1600462548.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': -0.271, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 465 1024 377 0.118 -0.271 0.656\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281524.130704, 'pid': 1714, 'enabled': True, 'uptime': 3181489.51, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1714)\nUptime: 36 days, 19:44:49 (Start time: Thu Aug 13 01:18:44 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293399040 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7293399040 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 130274, 'bytesOut': 336346994, 'lastHitTime': 1600463015.0102181, 'bytesIn': 20967260}}, 'bytesOut': 336346994, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 137640, 'vrf': 'default', 'lastHitTime': 1600463015.0101871, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 10542.94297094192, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 130274, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.13.101:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.4:443', 'Loopback10 : https://198.18.0.38:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 20967260, 'commandCount': 260548, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 137642\nLast hit: 0 seconds ago\nBytes in: 20967590\nBytes out: 336349224\nRequests: 130276\nCommands: 260552\nDuration: 10542.970 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 130276 20967590 336349224 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.13.101:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.4:443 \nLoopback10 : https://198.18.0.38:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:27:38 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:43 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:33 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:27 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:33 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:41 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:16 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:32 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:43 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:49 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:57 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:12 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:22 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:27:38 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:43 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:33 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:27 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:33 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:41 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:16 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:32 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:43 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:49 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:57 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:12 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:22 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:zerotouch-config with connnection Node(connection=EapiConnection(transport=https://3.131.6.163:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:zerotouch-config on dut kg-topology-CloudEosRR2: [{'command': 'show file information flash:zerotouch-config', 'result': {'isDir': False, 'path': 'flash:/zerotouch-config', 'fileName': '/mnt/flash/zerotouch-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:zerotouch-config on dut kg-topology-CloudEosRR2: [{'output': 'flash:/zerotouch-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/zerotouch-config: type is file INFO root:test_filesystem.py:80 WHEN flash:zerotouch-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:zerotouch-config| is : [{'output': 'flash:/zerotouch-config:\n type is file\n'}] | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_short_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no frameTooShorts errors | 0.13 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0| TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|. GIVEN interface frameTooShorts errors is |0|. WHEN interface frameTooShortserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_frame_too_short_errors_on_ exists in results file at index 1 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_frame_too_short_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/cpu/test_cpu.py::CPUTests::test_1_sec_cpu_utlization_on_[kg-topology-CloudEosRR2] | Verify 1 second CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| 1 second CPU load average is |1.27%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_1_sec_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show processes| on kg-topology-CloudEosRR2 INFO root:test_cpu.py:70 TEST if 1 second CPU utilization is less than specified value on |kg-topology-CloudEosRR2| INFO root:test_cpu.py:72 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:76 WHEN CPU utilization is |1.27| INFO root:test_cpu.py:79 THEN test case result is |True| INFO root:test_cpu.py:80 OUTPUT of |show processes| is : 21:03:28 up 36 days, 19:45, 0 users, load average: 1.27, 1.36, 1.32 PID %CPU %MEM TT STAT STARTED TIME CMD 2009 102 3.4 ? Sl Aug 13 37-16:37:02 Sfe 20891 1.7 0.9 ? SNl 20:45:06 00:00:18 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1714 0.4 1.9 ? Sl Aug 13 03:34:47 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042 1255 0.1 0.9 ? S Aug 13 01:40:27 ProcMgr-worker 1566 0.1 7.3 ? Sl Aug 13 01:44:33 ConfigAgent 1 0.0 0.0 ? Ss Aug 13 00:05:09 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:28 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 7 0.0 0.0 ? S Aug 13 00:00:50 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:04 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:27 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2] 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 732 0.0 0.0 ? Ss Aug 13 00:01:30 /usr/lib/systemd/systemd-logind 734 0.0 0.0 ? Ss Aug 13 00:01:01 /usr/bin/ProcMonitor 742 0.0 0.1 ? Ss Aug 13 00:03:07 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 797 0.0 0.0 ? Ss Aug 13 00:00:17 /usr/sbin/crond -n 812 0.0 0.0 ? S<s Aug 13 00:00:24 /usr/bin/wdogdev -t 60 823 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 979 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1462 0.0 0.0 ? S Aug 13 00:11:45 /usr/bin/EosOomAdjust 1470 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu] 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1522 0.0 0.0 ? S Aug 13 00:02:45 /usr/bin/SlabMonitor 1523 0.0 2.5 ? S Aug 13 00:39:11 Sysdb 1565 0.0 1.2 ? S Aug 13 00:00:47 StageMgr 1570 0.0 1.4 ? S Aug 13 00:01:54 Fru 1571 0.0 1.8 ? S Aug 13 00:00:42 Launcher 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1696 0.0 1.2 ? S Aug 13 00:10:00 Lldp 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1704 0.0 1.2 ? S Aug 13 00:03:54 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1712 0.0 1.1 ? S Aug 13 00:02:20 PortSec 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1723 0.0 1.4 ? S Aug 13 00:04:39 Bfd 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1727 0.0 1.3 ? S Aug 13 00:18:28 Lag 1729 0.0 1.7 ? S Aug 13 00:37:20 SuperServer 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.5 ? S Aug 13 00:04:02 Ira 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1738 0.0 1.1 ? S Aug 13 00:03:08 LedPolicy 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.3 ? S Aug 13 00:08:08 EventMgr 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1745 0.0 1.2 ? S Aug 13 00:28:22 StpTxRx 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1749 0.0 1.1 ? S Aug 13 00:00:42 StandbyCpld 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1753 0.0 1.0 ? S Aug 13 00:42:26 AgentMonitor 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.2 ? S Aug 13 00:01:35 Tunnel 1757 0.0 1.5 ? Sl Aug 13 00:10:35 Aaa 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 1.2 ? S Aug 13 00:03:43 StpTopology 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1764 0.0 1.4 ? S Aug 13 00:21:02 Acl 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.1 ? S Aug 13 00:05:10 Stp 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1782 0.0 1.1 ? S Aug 13 00:02:23 KernelNetworkInfo 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1800 0.0 1.2 ? S Aug 13 00:03:17 McastCommon6 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1813 0.0 1.2 ? S Aug 13 00:03:35 LacpTxAgent 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1830 0.0 1.5 ? S Aug 13 00:04:55 Arp 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1850 0.0 1.4 ? S Aug 13 00:03:45 KernelFib 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1866 0.0 1.2 ? S Aug 13 00:02:53 Qos 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1872 0.0 1.1 ? S Aug 13 00:02:22 Thermostat 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1883 0.0 1.2 ? S Aug 13 00:01:15 L2Rib 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1887 0.0 1.2 ? S Aug 13 00:01:52 TopoAgent 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1892 0.0 1.0 ? S Aug 13 00:00:40 PowerFuse 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1895 0.0 1.1 ? S Aug 13 00:00:41 PowerManager 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1905 0.0 1.4 ? S Aug 13 00:07:05 Ebra 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1916 0.0 1.1 ? S Aug 13 00:00:41 ReloadCauseAgent 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.0 ? S Aug 13 00:00:41 SharedSecretProfile 1923 0.0 1.5 ? S Aug 13 00:03:51 IgmpSnooping 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1935 0.0 1.3 ? S Aug 13 00:02:22 StaticRoute 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1940 0.0 1.6 ? S Aug 13 00:08:36 IpRib 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1945 0.0 1.8 ? S Aug 13 00:02:27 BgpCliHelper 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1957 0.0 1.3 ? S Aug 13 00:04:08 ConnectedRoute 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1966 0.0 1.3 ? S Aug 13 00:02:25 RouteInput 1974 0.0 2.2 ? Sl Aug 13 00:11:54 Bgp 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2286 0.0 0.0 ? Ssl Aug 13 00:00:36 /usr/sbin/rsyslogd -n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2605 0.0 1.1 ? S Aug 13 00:00:43 LicenseManager 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2667 0.0 0.0 ? S Aug 13 00:00:23 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2736 0.0 1.2 ? S Aug 13 00:10:25 Ipsec 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2766 0.0 0.1 ? Ssl Aug 13 00:01:05 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3343 0.0 0.1 ? Ssl Aug 13 00:01:46 /usr/libexec/strongswan/charon --use-syslog 18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18369 0.0 1.3 ? Sl Aug 14 00:02:37 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18415 0.0 0.1 ? S Aug 14 00:02:15 nginx: worker process 20284 0.0 0.0 ? S 20:40:01 00:00:00 [kworker/0:3] 20844 0.0 0.0 ? S 20:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 20882 0.0 0.0 ? S 20:45:05 00:00:00 [kworker/0:1] 23316 0.0 0.0 ? S 20:51:01 00:00:00 [kworker/0:2] 24800 0.0 0.0 ? S 20:57:00 00:00:00 [kworker/0:0] 26215 0.0 0.0 ? S 21:01:00 00:00:00 [kworker/0:4] 26720 0.0 0.0 ? Rs 21:03:27 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_exec_accounting_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA exec accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_exec_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:496 TEST is exec accounting methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:498 GIVEN exec system accounting method list: |[]| and exec system accounting methodlist: |[]| INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:514 WHEN default exec accounting method list: |[]| and console exec accounting methodlist: |[]| INFO root:test_aaa.py:519 THEN test case result is |True| INFO root:test_aaa.py:520 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/host/test_host.py::HostTests::test_if_hostname_is_correcet_on_[kg-topology-CloudEosRR2] | Verify hostname is set on device is correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| the configured hostname is |kg-topology-CloudEosRR2| and the correct hostname is |kg-topology-CloudEosRR2| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_host.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_hostname_is_correcet_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show hostname| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show hostname| on kg-topology-CloudEosRR2 INFO root:test_host.py:72 TEST is hostname kg-topology-CloudEosRR2 correct INFO root:test_host.py:73 GIVEN hostname kg-topology-CloudEosRR2 INFO root:test_host.py:74 WHEN hostname is kg-topology-CloudEosRR2 INFO root:test_host.py:81 THEN test case result is |False| INFO root:test_host.py:82 OUTPUT of |show hostname| is : Hostname: kg-topology-CloudEosRR2 FQDN: kg-topology-CloudEosRR2 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/cpu/test_cpu.py::CPUTests::test_1_min_cpu_utlization_on_[kg-topology-CloudEosRR2] | Verify 1 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| 1 minute CPU load average is |1.36%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_1_min_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show processes| on kg-topology-CloudEosRR2 INFO root:test_cpu.py:105 TEST if 1 minute CPU utilization is less than specified value on |kg-topology-CloudEosRR2| INFO root:test_cpu.py:107 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:111 WHEN CPU utilization is |1.36| INFO root:test_cpu.py:114 THEN test case result is |True| INFO root:test_cpu.py:115 OUTPUT of |show processes| is : 21:03:28 up 36 days, 19:45, 0 users, load average: 1.27, 1.36, 1.32 PID %CPU %MEM TT STAT STARTED TIME CMD 2009 102 3.4 ? Sl Aug 13 37-16:37:02 Sfe 20891 1.7 0.9 ? SNl 20:45:06 00:00:18 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1714 0.4 1.9 ? Sl Aug 13 03:34:47 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042 1255 0.1 0.9 ? S Aug 13 01:40:27 ProcMgr-worker 1566 0.1 7.3 ? Sl Aug 13 01:44:33 ConfigAgent 1 0.0 0.0 ? Ss Aug 13 00:05:09 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:28 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 7 0.0 0.0 ? S Aug 13 00:00:50 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:04 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:27 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2] 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 732 0.0 0.0 ? Ss Aug 13 00:01:30 /usr/lib/systemd/systemd-logind 734 0.0 0.0 ? Ss Aug 13 00:01:01 /usr/bin/ProcMonitor 742 0.0 0.1 ? Ss Aug 13 00:03:07 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 797 0.0 0.0 ? Ss Aug 13 00:00:17 /usr/sbin/crond -n 812 0.0 0.0 ? S<s Aug 13 00:00:24 /usr/bin/wdogdev -t 60 823 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 979 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1462 0.0 0.0 ? S Aug 13 00:11:45 /usr/bin/EosOomAdjust 1470 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu] 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1522 0.0 0.0 ? S Aug 13 00:02:45 /usr/bin/SlabMonitor 1523 0.0 2.5 ? S Aug 13 00:39:11 Sysdb 1565 0.0 1.2 ? S Aug 13 00:00:47 StageMgr 1570 0.0 1.4 ? S Aug 13 00:01:54 Fru 1571 0.0 1.8 ? S Aug 13 00:00:42 Launcher 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1696 0.0 1.2 ? S Aug 13 00:10:00 Lldp 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1704 0.0 1.2 ? S Aug 13 00:03:54 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1712 0.0 1.1 ? S Aug 13 00:02:20 PortSec 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1723 0.0 1.4 ? S Aug 13 00:04:39 Bfd 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1727 0.0 1.3 ? S Aug 13 00:18:28 Lag 1729 0.0 1.7 ? S Aug 13 00:37:20 SuperServer 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.5 ? S Aug 13 00:04:02 Ira 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1738 0.0 1.1 ? S Aug 13 00:03:08 LedPolicy 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.3 ? S Aug 13 00:08:08 EventMgr 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1745 0.0 1.2 ? S Aug 13 00:28:22 StpTxRx 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1749 0.0 1.1 ? S Aug 13 00:00:42 StandbyCpld 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1753 0.0 1.0 ? S Aug 13 00:42:26 AgentMonitor 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.2 ? S Aug 13 00:01:35 Tunnel 1757 0.0 1.5 ? Sl Aug 13 00:10:35 Aaa 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 1.2 ? S Aug 13 00:03:43 StpTopology 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1764 0.0 1.4 ? S Aug 13 00:21:02 Acl 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.1 ? S Aug 13 00:05:10 Stp 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1782 0.0 1.1 ? S Aug 13 00:02:23 KernelNetworkInfo 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1800 0.0 1.2 ? S Aug 13 00:03:17 McastCommon6 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1813 0.0 1.2 ? S Aug 13 00:03:35 LacpTxAgent 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1830 0.0 1.5 ? S Aug 13 00:04:55 Arp 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1850 0.0 1.4 ? S Aug 13 00:03:45 KernelFib 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1866 0.0 1.2 ? S Aug 13 00:02:53 Qos 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1872 0.0 1.1 ? S Aug 13 00:02:22 Thermostat 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1883 0.0 1.2 ? S Aug 13 00:01:15 L2Rib 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1887 0.0 1.2 ? S Aug 13 00:01:52 TopoAgent 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1892 0.0 1.0 ? S Aug 13 00:00:40 PowerFuse 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1895 0.0 1.1 ? S Aug 13 00:00:41 PowerManager 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1905 0.0 1.4 ? S Aug 13 00:07:05 Ebra 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1916 0.0 1.1 ? S Aug 13 00:00:41 ReloadCauseAgent 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.0 ? S Aug 13 00:00:41 SharedSecretProfile 1923 0.0 1.5 ? S Aug 13 00:03:51 IgmpSnooping 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1935 0.0 1.3 ? S Aug 13 00:02:22 StaticRoute 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1940 0.0 1.6 ? S Aug 13 00:08:36 IpRib 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1945 0.0 1.8 ? S Aug 13 00:02:27 BgpCliHelper 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1957 0.0 1.3 ? S Aug 13 00:04:08 ConnectedRoute 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1966 0.0 1.3 ? S Aug 13 00:02:25 RouteInput 1974 0.0 2.2 ? Sl Aug 13 00:11:54 Bgp 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2286 0.0 0.0 ? Ssl Aug 13 00:00:36 /usr/sbin/rsyslogd -n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2605 0.0 1.1 ? S Aug 13 00:00:43 LicenseManager 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2667 0.0 0.0 ? S Aug 13 00:00:23 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2736 0.0 1.2 ? S Aug 13 00:10:25 Ipsec 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2766 0.0 0.1 ? Ssl Aug 13 00:01:05 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3343 0.0 0.1 ? Ssl Aug 13 00:01:46 /usr/libexec/strongswan/charon --use-syslog 18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18369 0.0 1.3 ? Sl Aug 14 00:02:37 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18415 0.0 0.1 ? S Aug 14 00:02:15 nginx: worker process 20284 0.0 0.0 ? S 20:40:01 00:00:00 [kworker/0:3] 20844 0.0 0.0 ? S 20:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 20882 0.0 0.0 ? S 20:45:05 00:00:00 [kworker/0:1] 23316 0.0 0.0 ? S 20:51:01 00:00:00 [kworker/0:2] 24800 0.0 0.0 ? S 20:57:00 00:00:00 [kworker/0:0] 26215 0.0 0.0 ? S 21:01:00 00:00:00 [kworker/0:4] 26720 0.0 0.0 ? Rs 21:03:27 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_priviledge_accounting_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA priviledge accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_priviledge_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:546 TEST is priviledge accounting methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:548 GIVEN priviledge system accounting method list: |[]| and priviledge system accounting method list: |[]| INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:564 WHEN default privilege accounting method list: |[]| and console privilege accounting method list: |[]| INFO root:test_aaa.py:569 THEN test case result is |True| INFO root:test_aaa.py:570 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_long_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no frameLongShorts errors | 0.22 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0| TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|. GIVEN interface frameTooLongs errors is |0|. WHEN interface frameTooLongserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_frame_too_long_errors_on_ exists in results file at index 6 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_frame_too_long_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_protocol_status_is_connected_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest protocol statuses are up | 0.31 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up| TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|. GIVEN interface status is |up|. WHEN interface status is |up|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et100 connected routed full 10G 10/100/1000 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:372 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces status| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:540 Test case test_if_intf_protocol_status_is_connected_on_ exists in results file at index 8 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_protocol_status_is_connected_on_ with parameters {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'actual_output': 'up', 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_accounting_methods_set_on_[kg-topology-CloudEosRR2] | Verify AAA dot1x accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| AAA accounting exec methods for dot1x: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dot1x_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:594 TEST is dot1x accounting methods list set correct on |kg-topology-CloudEosRR2| INFO root:test_aaa.py:596 GIVEN dot1x system accounting method list: |[]| and dot1x system accounting methodlist: |[]| INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEosRR2 INFO root:test_aaa.py:611 WHEN default dot1x accounting method list: |[]| and console dot1x accounting method list: |[]| INFO root:test_aaa.py:616 THEN test case result is |True| INFO root:test_aaa.py:617 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/cpu/test_cpu.py::CPUTests::test_5_min_cpu_utlization_on_[kg-topology-CloudEosRR2] | Verify 5 minute CPU % is under specificied value | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| 5 minute CPU load average is |1.32%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_5_min_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show processes| on kg-topology-CloudEosRR2 INFO root:test_cpu.py:140 TEST if 5 minute CPU utilization is less than specified value on |kg-topology-CloudEosRR2| INFO root:test_cpu.py:142 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:146 WHEN CPU utilization is |1.32| INFO root:test_cpu.py:149 THEN test case result is |True| INFO root:test_cpu.py:150 OUTPUT of |show processes| is : 21:03:28 up 36 days, 19:45, 0 users, load average: 1.27, 1.36, 1.32 PID %CPU %MEM TT STAT STARTED TIME CMD 2009 102 3.4 ? Sl Aug 13 37-16:37:02 Sfe 20891 1.7 0.9 ? SNl 20:45:06 00:00:18 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1714 0.4 1.9 ? Sl Aug 13 03:34:47 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042 1255 0.1 0.9 ? S Aug 13 01:40:27 ProcMgr-worker 1566 0.1 7.3 ? Sl Aug 13 01:44:33 ConfigAgent 1 0.0 0.0 ? Ss Aug 13 00:05:09 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:28 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 7 0.0 0.0 ? S Aug 13 00:00:50 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:04 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:27 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2] 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 732 0.0 0.0 ? Ss Aug 13 00:01:30 /usr/lib/systemd/systemd-logind 734 0.0 0.0 ? Ss Aug 13 00:01:01 /usr/bin/ProcMonitor 742 0.0 0.1 ? Ss Aug 13 00:03:07 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 797 0.0 0.0 ? Ss Aug 13 00:00:17 /usr/sbin/crond -n 812 0.0 0.0 ? S<s Aug 13 00:00:24 /usr/bin/wdogdev -t 60 823 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 979 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1462 0.0 0.0 ? S Aug 13 00:11:45 /usr/bin/EosOomAdjust 1470 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu] 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1522 0.0 0.0 ? S Aug 13 00:02:45 /usr/bin/SlabMonitor 1523 0.0 2.5 ? S Aug 13 00:39:11 Sysdb 1565 0.0 1.2 ? S Aug 13 00:00:47 StageMgr 1570 0.0 1.4 ? S Aug 13 00:01:54 Fru 1571 0.0 1.8 ? S Aug 13 00:00:42 Launcher 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1696 0.0 1.2 ? S Aug 13 00:10:00 Lldp 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1704 0.0 1.2 ? S Aug 13 00:03:54 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1712 0.0 1.1 ? S Aug 13 00:02:20 PortSec 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1723 0.0 1.4 ? S Aug 13 00:04:39 Bfd 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1727 0.0 1.3 ? S Aug 13 00:18:28 Lag 1729 0.0 1.7 ? S Aug 13 00:37:20 SuperServer 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.5 ? S Aug 13 00:04:02 Ira 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1738 0.0 1.1 ? S Aug 13 00:03:08 LedPolicy 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.3 ? S Aug 13 00:08:08 EventMgr 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1745 0.0 1.2 ? S Aug 13 00:28:22 StpTxRx 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1749 0.0 1.1 ? S Aug 13 00:00:42 StandbyCpld 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1753 0.0 1.0 ? S Aug 13 00:42:26 AgentMonitor 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.2 ? S Aug 13 00:01:35 Tunnel 1757 0.0 1.5 ? Sl Aug 13 00:10:35 Aaa 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 1.2 ? S Aug 13 00:03:43 StpTopology 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1764 0.0 1.4 ? S Aug 13 00:21:02 Acl 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.1 ? S Aug 13 00:05:10 Stp 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1782 0.0 1.1 ? S Aug 13 00:02:23 KernelNetworkInfo 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1800 0.0 1.2 ? S Aug 13 00:03:17 McastCommon6 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1813 0.0 1.2 ? S Aug 13 00:03:35 LacpTxAgent 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1830 0.0 1.5 ? S Aug 13 00:04:55 Arp 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1850 0.0 1.4 ? S Aug 13 00:03:45 KernelFib 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1866 0.0 1.2 ? S Aug 13 00:02:53 Qos 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1872 0.0 1.1 ? S Aug 13 00:02:22 Thermostat 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1883 0.0 1.2 ? S Aug 13 00:01:15 L2Rib 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1887 0.0 1.2 ? S Aug 13 00:01:52 TopoAgent 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1892 0.0 1.0 ? S Aug 13 00:00:40 PowerFuse 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1895 0.0 1.1 ? S Aug 13 00:00:41 PowerManager 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1905 0.0 1.4 ? S Aug 13 00:07:05 Ebra 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1916 0.0 1.1 ? S Aug 13 00:00:41 ReloadCauseAgent 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.0 ? S Aug 13 00:00:41 SharedSecretProfile 1923 0.0 1.5 ? S Aug 13 00:03:51 IgmpSnooping 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1935 0.0 1.3 ? S Aug 13 00:02:22 StaticRoute 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1940 0.0 1.6 ? S Aug 13 00:08:36 IpRib 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1945 0.0 1.8 ? S Aug 13 00:02:27 BgpCliHelper 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1957 0.0 1.3 ? S Aug 13 00:04:08 ConnectedRoute 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1966 0.0 1.3 ? S Aug 13 00:02:25 RouteInput 1974 0.0 2.2 ? Sl Aug 13 00:11:54 Bgp 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2286 0.0 0.0 ? Ssl Aug 13 00:00:36 /usr/sbin/rsyslogd -n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2605 0.0 1.1 ? S Aug 13 00:00:43 LicenseManager 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2667 0.0 0.0 ? S Aug 13 00:00:23 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2736 0.0 1.2 ? S Aug 13 00:10:25 Ipsec 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2766 0.0 0.1 ? Ssl Aug 13 00:01:05 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3343 0.0 0.1 ? Ssl Aug 13 00:01:46 /usr/libexec/strongswan/charon --use-syslog 18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18369 0.0 1.3 ? Sl Aug 14 00:02:37 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18415 0.0 0.1 ? S Aug 14 00:02:15 nginx: worker process 20284 0.0 0.0 ? S 20:40:01 00:00:00 [kworker/0:3] 20844 0.0 0.0 ? S 20:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 20882 0.0 0.0 ? S 20:45:05 00:00:00 [kworker/0:1] 23316 0.0 0.0 ? S 20:51:01 00:00:00 [kworker/0:2] 24800 0.0 0.0 ? S 20:57:00 00:00:00 [kworker/0:0] 26215 0.0 0.0 ? S 21:01:00 00:00:00 [kworker/0:4] 26720 0.0 0.0 ? Rs 21:03:27 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_fcs_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no fcsErrors errors | 0.23 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0| TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|. GIVEN interface fcsErrors errors is |0|. WHEN interface fcsErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_fcs_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_fcs_errors_on_ exists in results file at index 5 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_fcs_errors_on_ with parameters {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_sending_messages_on_[kg-topology-CloudEosRR2] | Verify tacacs messages are sending correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_tacacs_is_sending_messages_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show tacacs| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:396 Verify if tacacs server(s) are configured on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:402 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:73 TEST is |kg-topology-CloudEosRR2| sending messages to TACACS server | ||||
| Passed | kg-topology-CloudEosRR2 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_running_on_[kg-topology-CloudEosRR2] | Verify a list of daemons are running on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: TerminAttr daemon running is |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_daemons_are_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show daemon| on kg-topology-CloudEosRR2 INFO root:test_daemon.py:73 TEST is TerminAttr daemon running on |kg-topology-CloudEosRR2| INFO root:test_daemon.py:74 GIVEN expected TerminAttr running state: |True| INFO root:test_daemon.py:79 WHEN TerminAttr device running state is |True| INFO root:test_daemon.py:83 THEN test case result is |True| INFO root:test_daemon.py:84 OUTPUT of |show daemon| is : Process: TerminAttr (running with PID 1714) Uptime: 36 days, 19:44:49 (Start time: Thu Aug 13 01:18:44 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_link_status_is_connected_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest link statuses are up | 0.20 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface link line protocol status is set to: |connected|, correct state is |connected| - On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected| TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|. GIVEN interface status is |connected|. WHEN interface status is |connected|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et100 connected routed full 10G 10/100/1000 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:372 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces status| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_link_status_is_connected_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:540 Test case test_if_intf_link_status_is_connected_on_ exists in results file at index 0 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_link_status_is_connected_on_ with parameters {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'actual_output': 'connected', 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_receiving_messages_on_[kg-topology-CloudEosRR2] | Verify tacacs messages are received correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_tacacs_is_receiving_messages_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show tacacs| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:396 Verify if tacacs server(s) are configured on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:402 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:136 TEST is |kg-topology-CloudEosRR2| receiving messages to TACACS server | ||||
| Passed | kg-topology-CloudEosRR2 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_enabled_on_[kg-topology-CloudEosRR2] | Verify a list of daemons are enabled on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: TerminAttr daemon enabled is |True| and expected value is |True|. Test result is True -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_daemons_are_enabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:test_daemon.py:105 TEST is terminattr daemon enabled on |kg-topology-CloudEosRR2| INFO root:test_daemon.py:106 GIVEN expected terminattr​ enabled state: |True| INFO root:tests_tools.py:372 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show daemon| on kg-topology-CloudEosRR2 INFO root:test_daemon.py:114 WHEN terminattr​ device enabled state is |True| INFO root:test_daemon.py:118 THEN test case result is |True| INFO root:test_daemon.py:119 OUTPUT of |show daemon|: Process: TerminAttr (running with PID 1714) Uptime: 36 days, 19:44:49 (Start time: Thu Aug 13 01:18:44 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_alignment_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no alignmentErrors errors | 0.22 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0| TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|. GIVEN interface alignmentErrors errors is |0|. WHEN interface alignmentErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_alignment_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_alignment_errors_on_ exists in results file at index 11 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_alignment_errors_on_ with parameters {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/users/test_users.py::UsersTests::test_if_usernames_are_configured_on_[kg-topology-CloudEosRR2] | Verify username is set correctly | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| |ec2-user| username is |configured| On router |kg-topology-CloudEosRR2| |kgrozis| username is |configured| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_users.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_usernames_are_configured_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show running-config section username| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show running-config section username| on kg-topology-CloudEosRR2 INFO root:test_users.py:74 TEST is ec2-user username configured |kg-topology-CloudEosRR2| INFO root:test_users.py:76 GIVEN ec2-user username configured status: |True| INFO root:test_users.py:82 WHEN ec2-user username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. INFO root:test_users.py:74 TEST is kgrozis username configured |kg-topology-CloudEosRR2| INFO root:test_users.py:76 GIVEN kgrozis username configured status: |True| INFO root:test_users.py:82 WHEN kgrozis username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfacePhyTests::test_if_intf_phy_status_connected_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest physical state is link up | 0.26 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ kg-topology-CloudEosRR2 is a VEOS instance so test NOT valid -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'} INFO root:tests_tools.py:372 Verify if show command |show interfaces phy detail| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces phy detail| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:419 Verify if kg-topology-CloudEosRR2 DUT is a VEOS instance INFO root:tests_tools.py:423 kg-topology-CloudEosRR2 is a VEOS instance so returning True INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_phy_status_connected_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:540 Test case test_if_intf_phy_status_connected_on_ exists in results file at index 4 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_phy_status_connected_on_ with parameters {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail', 'test_suite': 'test_interface.py', 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'test_result': True, 'output_msg': None, 'actual_output': None, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/ztp/test_ztp.py::ZTPTests::test_if_zerotouch_is_disabled_on_[kg-topology-CloudEosRR2] | Verify ztp is disabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| ZTP process is in mode: |disabled| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_zerotouch_is_disabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show zerotouch| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show zerotouch| on kg-topology-CloudEosRR2 INFO root:test_ztp.py:71 TEST is ZTP disabled on |kg-topology-CloudEosRR2| INFO root:test_ztp.py:72 GIVEN ZTP state is |disabled| INFO root:test_ztp.py:78 WHEN ZTP state is |disabled| INFO root:test_ztp.py:81 THEN test case result is |True| INFO root:test_ztp.py:82 OUTPUT of |show zerotouch| is : ZeroTouch Mode: Disabled Script Exec Timeout: 900 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_symbol_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no alignmentErrors errors | 0.19 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0| TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|. GIVEN interface symbolErrors errors is |0|. WHEN interface symbolErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_symbol_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_symbol_errors_on_ exists in results file at index 3 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_symbol_errors_on_ with parameters {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_input_errors_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest does not have input errors | 0.20 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0| TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|. GIVEN interface input errors is |0|. WHEN interface inputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_input_errors_on_ exists in results file at index 2 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_counters_has_input_errors_on_ with parameters {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEosRR2 | tests/ztp/test_ztp.py::ZTPTests::test_for_zerotouch_config_file_on_[kg-topology-CloudEosRR2] | Verify zerotoucn-config file is on flash | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| ZTP configuration file is on flash: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_for_zerotouch_config_file_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |dir flash:zerotouch-config| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |dir flash:zerotouch-config| on kg-topology-CloudEosRR2 INFO root:test_ztp.py:106 TEST is ZTP configuration file is on |kg-topology-CloudEosRR2| INFO root:test_ztp.py:107 GIVEN ZTP configuration file is |True| INFO root:test_ztp.py:113 WHEN ZTP configuration file is |True| INFO root:test_ztp.py:116 THEN test case result is |True| INFO root:test_ztp.py:117 OUTPUT of |dir flash:zerotouch-config| is : Directory of flash:/zerotouch-config -rw- 13 Mar 30 23:38 zerotouch-config 8319852544 bytes total (7293399040 bytes free) | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/test_pytest.py::PyTestTests::test_assert_true[kg-topology-CloudEOSEdge1] | Prior to running any tests this test Validates that PyTest is working correct by verifying PyTest can assert True. | 0.00 |
|
-------------------------------Captured log call-------------------------------- INFO root:test_pytest.py:48 Prior to running any tests this test Validates thatPyTest is working correct by verifying PyTest can assert True. | ||||
| Passed | kg-topology-CloudEosRR2 | tests/dns/test_dns.py::DNSTests::test_if_dns_resolves_on_[kg-topology-CloudEosRR2] | Verify DNS is running by performing pings and verifying name resolution | 1.13 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| DNS resolution |Passed| for google.com On router |kg-topology-CloudEosRR2| DNS resolution |Passed| for cnn.com On router |kg-topology-CloudEosRR2| DNS resolution |Passed| for arista.com -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_dns.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dns_resolves_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True} INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR2| resolve google.com INFO root:test_dns.py:71 GIVEN URL is |google.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping google.com| is : PING google.com (172.217.8.174) 72(100) bytes of data. 76 bytes from ord37s08-in-f14.1e100.net (172.217.8.174): icmp_seq=1 ttl=100 (truncated) 76 bytes from ord37s08-in-f14.1e100.net (172.217.8.174): icmp_seq=2 ttl=100 (truncated) 76 bytes from ord37s08-in-f14.1e100.net (172.217.8.174): icmp_seq=3 ttl=100 (truncated) 76 bytes from ord37s08-in-f14.1e100.net (172.217.8.174): icmp_seq=4 ttl=100 (truncated) 76 bytes from ord37s08-in-f14.1e100.net (172.217.8.174): icmp_seq=5 ttl=100 (truncated) --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 61ms rtt min/avg/max/mdev = 17.050/17.064/17.090/0.083 ms, pipe 2, ipg/ewma 15.315/17.062 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR2| resolve cnn.com INFO root:test_dns.py:71 GIVEN URL is |cnn.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping cnn.com| is : PING cnn.com (151.101.129.67) 72(100) bytes of data. 80 bytes from 151.101.129.67 (151.101.129.67): icmp_seq=1 ttl=39 time=10.6 ms 80 bytes from 151.101.129.67 (151.101.129.67): icmp_seq=2 ttl=39 time=10.5 ms 80 bytes from 151.101.129.67 (151.101.129.67): icmp_seq=3 ttl=39 time=10.5 ms 80 bytes from 151.101.129.67 (151.101.129.67): icmp_seq=4 ttl=39 time=10.6 ms 80 bytes from 151.101.129.67 (151.101.129.67): icmp_seq=5 ttl=39 time=10.6 ms --- cnn.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 43ms rtt min/avg/max/mdev = 10.571/10.602/10.634/0.094 ms, pipe 2, ipg/ewma 10.765/10.604 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEosRR2| resolve arista.com INFO root:test_dns.py:71 GIVEN URL is |arista.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping arista.com| is : PING arista.com (64.68.200.46) 72(100) bytes of data. 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=1 ttl=39 time=22.7 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=2 ttl=39 time=22.6 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=3 ttl=39 time=22.7 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=4 ttl=39 time=22.7 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=5 ttl=39 time=22.6 ms --- arista.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 66ms rtt min/avg/max/mdev = 22.684/22.710/22.745/0.136 ms, pipe 3, ipg/ewma 16.530/22.711 ms | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_out_counters_are_discarding_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no outDiscards | 0.24 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0| TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| GIVEN interface outbound discards are |0| WHEN interface outbound discards are |0| THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_out_counters_are_discarding_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:540 Test case test_if_intf_out_counters_are_discarding_on_ exists in results file at index 9 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_out_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_enable_authentication_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA enable authentication method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA authentication methods for enable default: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_enable_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:403 TEST is enable authentication methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:405 GIVEN enable authentication method list: |['local']| INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:417 WHEN EOS enable authentication method list is set to |['local']| INFO root:test_aaa.py:421 THEN test case result is |True| INFO root:test_aaa.py:422 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_aaa_session_logging_is_working_on_[kg-topology-CloudEOSEdge1] | Verify AAA session logging is working by identifying eapi connection | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| identified eAPi AAA session: |commandApi| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_aaa_session_logging_is_working_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show users detail| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show users detail| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:130 TEST is |kg-topology-CloudEOSEdge1| AAA session logging is working by identifying eapi connection INFO root:test_aaa.py:138 GIVEN commandApi is nonInteractive sessions INFO root:test_aaa.py:139 WHEN commandApi is nonInteractive sessions INFO root:test_aaa.py:154 THEN test case result is |True| INFO root:test_aaa.py:155 OUTPUT of |show users detail| is : Session Username Roles TTY State Duration Auth Remote Host -------- --------- ------- ------------- ------- ---------- ------- ----------- 134577 kgrozis command-api E 0:00:15 local | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/cpu/test_cpu.py::CPUTests::test_1_min_cpu_utlization_on_[kg-topology-CloudEOSEdge1] | Verify 1 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| 1 minute CPU load average is |1.47%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_1_min_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show processes| on kg-topology-CloudEOSEdge1 INFO root:test_cpu.py:105 TEST if 1 minute CPU utilization is less than specified value on |kg-topology-CloudEOSEdge1| INFO root:test_cpu.py:107 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:111 WHEN CPU utilization is |1.47| INFO root:test_cpu.py:114 THEN test case result is |True| INFO root:test_cpu.py:115 OUTPUT of |show processes| is : 21:03:28 up 36 days, 19:45, 0 users, load average: 1.82, 1.47, 1.39 PID %CPU %MEM TT STAT STARTED TIME CMD 1928 102 3.7 ? Sl Aug 13 37-16:02:10 Sfe 1116 2.7 0.9 ? SNl 20:45:06 00:00:30 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1725 0.4 2.3 ? Sl Aug 13 04:04:53 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042 1582 0.2 8.6 ? Sl Aug 13 01:54:56 ConfigAgent 1233 0.1 0.9 ? S Aug 13 01:41:07 ProcMgr-worker 3405 0.1 1.4 ? S Aug 13 01:36:14 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:05:06 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:30 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:49 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:30 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 747 0.0 0.1 ? Ss Aug 13 00:03:06 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 782 0.0 0.0 ? Ss Aug 13 00:01:05 /usr/bin/ProcMonitor 789 0.0 0.0 ? Ss Aug 13 00:01:27 /usr/lib/systemd/systemd-logind 807 0.0 0.0 ? Ss Aug 13 00:00:16 /usr/sbin/crond -n 819 0.0 0.0 ? S<s Aug 13 00:00:23 /usr/bin/wdogdev -t 60 824 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1017 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1028 0.0 0.0 ? S 20:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1478 0.0 0.0 ? S Aug 13 00:12:13 /usr/bin/EosOomAdjust 1486 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu] 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1538 0.0 0.0 ? S Aug 13 00:02:38 /usr/bin/SlabMonitor 1539 0.0 2.6 ? S Aug 13 00:51:30 Sysdb 1581 0.0 1.2 ? S Aug 13 00:00:46 StageMgr 1584 0.0 1.4 ? S Aug 13 00:02:21 Fru 1585 0.0 1.8 ? S Aug 13 00:01:16 Launcher 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1718 0.0 1.2 ? S Aug 13 00:09:09 Lldp 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1720 0.0 1.2 ? S Aug 13 00:04:00 McastCommon 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1726 0.0 1.1 ? S Aug 13 00:02:46 PortSec 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1746 0.0 1.4 ? S Aug 13 00:05:18 Bfd 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.3 ? S Aug 13 00:18:52 Lag 1754 0.0 1.7 ? S Aug 13 00:36:34 SuperServer 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1769 0.0 1.5 ? S Aug 13 00:04:36 Ira 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.2 ? S Aug 13 00:03:44 LedPolicy 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1777 0.0 1.3 ? S Aug 13 00:08:52 EventMgr 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.2 ? S Aug 13 00:30:16 StpTxRx 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1784 0.0 1.1 ? S Aug 13 00:00:40 StandbyCpld 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1787 0.0 1.0 ? S Aug 13 00:43:54 AgentMonitor 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1790 0.0 1.6 ? Sl Aug 13 00:10:29 Aaa 1791 0.0 1.2 ? S Aug 13 00:01:34 Tunnel 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1796 0.0 1.2 ? S Aug 13 00:04:27 StpTopology 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1799 0.0 1.4 ? S Aug 13 00:25:38 Acl 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1802 0.0 1.1 ? S Aug 13 00:05:55 Stp 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.1 ? S Aug 13 00:02:19 KernelNetworkInfo 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1809 0.0 1.2 ? S Aug 13 00:04:10 McastCommon6 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1815 0.0 1.2 ? S Aug 13 00:04:05 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1818 0.0 1.5 ? S Aug 13 00:05:45 Arp 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.4 ? S Aug 13 00:04:32 KernelFib 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1826 0.0 1.2 ? S Aug 13 00:03:29 Qos 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1831 0.0 1.1 ? S Aug 13 00:02:10 Thermostat 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1839 0.0 1.2 ? S Aug 13 00:01:11 L2Rib 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1844 0.0 1.2 ? S Aug 13 00:02:32 TopoAgent 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1849 0.0 1.1 ? S Aug 13 00:00:38 PowerFuse 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1854 0.0 1.1 ? S Aug 13 00:00:38 PowerManager 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1860 0.0 1.4 ? S Aug 13 00:07:09 Ebra 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.1 ? S Aug 13 00:00:41 ReloadCauseAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1881 0.0 1.5 ? S Aug 13 00:04:39 IgmpSnooping 1883 0.0 1.1 ? S Aug 13 00:00:40 SharedSecretProfile 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.3 ? S Aug 13 00:01:58 StaticRoute 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1907 0.0 1.7 ? S Aug 13 00:09:44 IpRib 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1912 0.0 1.9 ? S Aug 13 00:02:26 BgpCliHelper 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1915 0.0 1.3 ? S Aug 13 00:04:31 ConnectedRoute 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1919 0.0 1.3 ? S Aug 13 00:02:02 RouteInput 1920 0.0 2.3 ? Sl Aug 13 00:18:24 Bgp 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2295 0.0 0.0 ? Ssl Aug 13 00:00:22 /usr/sbin/rsyslogd -n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2363 0.0 1.1 ? S Aug 13 00:00:41 LicenseManager 2448 0.0 0.0 ? S 20:49:01 00:00:00 [kworker/0:2] 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2637 0.0 0.0 ? S Aug 13 00:00:22 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2662 0.0 1.2 ? S Aug 13 00:09:57 Ipsec 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2699 0.0 0.1 ? Ssl Aug 13 00:01:02 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3295 0.0 1.2 ? S Aug 13 00:07:58 Nat 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3301 0.0 1.3 ? S Aug 13 00:04:05 Vxlan 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3308 0.0 1.3 ? S Aug 13 00:04:29 VxlanSwFwd 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3367 0.0 0.1 ? Ssl Aug 13 00:01:08 /usr/libexec/strongswan/charon --use-syslog 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 5105 0.0 0.0 ? S 20:55:01 00:00:00 [kworker/0:1] 6523 0.0 0.0 ? S 21:00:01 00:00:00 [kworker/0:3] 6625 0.0 0.0 ? S 21:01:01 00:00:00 [kworker/0:4] 7151 0.0 0.0 ? Rs 21:03:28 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1] 18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18983 0.0 1.3 ? Sl Aug 26 00:02:07 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 19029 0.0 0.1 ? S Aug 26 00:02:04 nginx: worker process 30730 0.0 0.4 ? Sl Aug 17 00:15:34 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay 30750 0.0 0.1 ? Ssl Aug 17 00:12:49 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc 31909 0.0 0.0 ? S 20:37:01 00:00:00 [kworker/0:0] | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_system_accounting_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA system accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA accounting methods for default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_system_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:448 TEST is system accounting methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:450 GIVEN default system accounting method list: |[]| and console system accounting methodlist: |[]| INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:466 WHEN default system accounting method list: |[]| and console system accounting method list: |[]| INFO root:test_aaa.py:471 THEN test case result is |True| INFO root:test_aaa.py:472 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_commands_authorization_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA command authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA authorization methods for fcommands: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_commands_authorization_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:184 TEST is command authorization methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:186 GIVEN command authorization method list: |['none']| INFO root:test_aaa.py:190 WHEN EOS command authorization method list is set to |['none']| INFO root:test_aaa.py:194 THEN test case result is |True| INFO root:test_aaa.py:195 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_in_counters_are_discarding_on_[kg-topology-CloudEosRR2] | Verify the interfaces of interest have no inDiscards | 0.25 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0| TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|. GIVEN interface inbound discards are |0|. WHEN interface inbound discards are |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_in_counters_are_discarding_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:540 Test case test_if_intf_in_counters_are_discarding_on_ exists in results file at index 7 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR2 to test case test_if_intf_in_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/cpu/test_cpu.py::CPUTests::test_5_min_cpu_utlization_on_[kg-topology-CloudEOSEdge1] | Verify 5 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| 5 minute CPU load average is |1.39%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_5_min_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show processes| on kg-topology-CloudEOSEdge1 INFO root:test_cpu.py:140 TEST if 5 minute CPU utilization is less than specified value on |kg-topology-CloudEOSEdge1| INFO root:test_cpu.py:142 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:146 WHEN CPU utilization is |1.39| INFO root:test_cpu.py:149 THEN test case result is |True| INFO root:test_cpu.py:150 OUTPUT of |show processes| is : 21:03:28 up 36 days, 19:45, 0 users, load average: 1.82, 1.47, 1.39 PID %CPU %MEM TT STAT STARTED TIME CMD 1928 102 3.7 ? Sl Aug 13 37-16:02:10 Sfe 1116 2.7 0.9 ? SNl 20:45:06 00:00:30 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1725 0.4 2.3 ? Sl Aug 13 04:04:53 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042 1582 0.2 8.6 ? Sl Aug 13 01:54:56 ConfigAgent 1233 0.1 0.9 ? S Aug 13 01:41:07 ProcMgr-worker 3405 0.1 1.4 ? S Aug 13 01:36:14 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:05:06 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:30 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:49 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:30 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 747 0.0 0.1 ? Ss Aug 13 00:03:06 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 782 0.0 0.0 ? Ss Aug 13 00:01:05 /usr/bin/ProcMonitor 789 0.0 0.0 ? Ss Aug 13 00:01:27 /usr/lib/systemd/systemd-logind 807 0.0 0.0 ? Ss Aug 13 00:00:16 /usr/sbin/crond -n 819 0.0 0.0 ? S<s Aug 13 00:00:23 /usr/bin/wdogdev -t 60 824 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1017 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1028 0.0 0.0 ? S 20:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1478 0.0 0.0 ? S Aug 13 00:12:13 /usr/bin/EosOomAdjust 1486 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu] 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1538 0.0 0.0 ? S Aug 13 00:02:38 /usr/bin/SlabMonitor 1539 0.0 2.6 ? S Aug 13 00:51:30 Sysdb 1581 0.0 1.2 ? S Aug 13 00:00:46 StageMgr 1584 0.0 1.4 ? S Aug 13 00:02:21 Fru 1585 0.0 1.8 ? S Aug 13 00:01:16 Launcher 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1718 0.0 1.2 ? S Aug 13 00:09:09 Lldp 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1720 0.0 1.2 ? S Aug 13 00:04:00 McastCommon 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1726 0.0 1.1 ? S Aug 13 00:02:46 PortSec 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1746 0.0 1.4 ? S Aug 13 00:05:18 Bfd 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.3 ? S Aug 13 00:18:52 Lag 1754 0.0 1.7 ? S Aug 13 00:36:34 SuperServer 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1769 0.0 1.5 ? S Aug 13 00:04:36 Ira 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.2 ? S Aug 13 00:03:44 LedPolicy 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1777 0.0 1.3 ? S Aug 13 00:08:52 EventMgr 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.2 ? S Aug 13 00:30:16 StpTxRx 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1784 0.0 1.1 ? S Aug 13 00:00:40 StandbyCpld 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1787 0.0 1.0 ? S Aug 13 00:43:54 AgentMonitor 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1790 0.0 1.6 ? Sl Aug 13 00:10:29 Aaa 1791 0.0 1.2 ? S Aug 13 00:01:34 Tunnel 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1796 0.0 1.2 ? S Aug 13 00:04:27 StpTopology 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1799 0.0 1.4 ? S Aug 13 00:25:38 Acl 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1802 0.0 1.1 ? S Aug 13 00:05:55 Stp 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.1 ? S Aug 13 00:02:19 KernelNetworkInfo 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1809 0.0 1.2 ? S Aug 13 00:04:10 McastCommon6 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1815 0.0 1.2 ? S Aug 13 00:04:05 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1818 0.0 1.5 ? S Aug 13 00:05:45 Arp 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.4 ? S Aug 13 00:04:32 KernelFib 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1826 0.0 1.2 ? S Aug 13 00:03:29 Qos 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1831 0.0 1.1 ? S Aug 13 00:02:10 Thermostat 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1839 0.0 1.2 ? S Aug 13 00:01:11 L2Rib 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1844 0.0 1.2 ? S Aug 13 00:02:32 TopoAgent 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1849 0.0 1.1 ? S Aug 13 00:00:38 PowerFuse 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1854 0.0 1.1 ? S Aug 13 00:00:38 PowerManager 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1860 0.0 1.4 ? S Aug 13 00:07:09 Ebra 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.1 ? S Aug 13 00:00:41 ReloadCauseAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1881 0.0 1.5 ? S Aug 13 00:04:39 IgmpSnooping 1883 0.0 1.1 ? S Aug 13 00:00:40 SharedSecretProfile 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.3 ? S Aug 13 00:01:58 StaticRoute 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1907 0.0 1.7 ? S Aug 13 00:09:44 IpRib 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1912 0.0 1.9 ? S Aug 13 00:02:26 BgpCliHelper 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1915 0.0 1.3 ? S Aug 13 00:04:31 ConnectedRoute 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1919 0.0 1.3 ? S Aug 13 00:02:02 RouteInput 1920 0.0 2.3 ? Sl Aug 13 00:18:24 Bgp 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2295 0.0 0.0 ? Ssl Aug 13 00:00:22 /usr/sbin/rsyslogd -n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2363 0.0 1.1 ? S Aug 13 00:00:41 LicenseManager 2448 0.0 0.0 ? S 20:49:01 00:00:00 [kworker/0:2] 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2637 0.0 0.0 ? S Aug 13 00:00:22 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2662 0.0 1.2 ? S Aug 13 00:09:57 Ipsec 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2699 0.0 0.1 ? Ssl Aug 13 00:01:02 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3295 0.0 1.2 ? S Aug 13 00:07:58 Nat 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3301 0.0 1.3 ? S Aug 13 00:04:05 Vxlan 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3308 0.0 1.3 ? S Aug 13 00:04:29 VxlanSwFwd 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3367 0.0 0.1 ? Ssl Aug 13 00:01:08 /usr/libexec/strongswan/charon --use-syslog 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 5105 0.0 0.0 ? S 20:55:01 00:00:00 [kworker/0:1] 6523 0.0 0.0 ? S 21:00:01 00:00:00 [kworker/0:3] 6625 0.0 0.0 ? S 21:01:01 00:00:00 [kworker/0:4] 7151 0.0 0.0 ? Rs 21:03:28 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1] 18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18983 0.0 1.3 ? Sl Aug 26 00:02:07 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 19029 0.0 0.1 ? S Aug 26 00:02:04 nginx: worker process 30730 0.0 0.4 ? Sl Aug 17 00:15:34 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay 30750 0.0 0.1 ? Ssl Aug 17 00:12:49 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc 31909 0.0 0.0 ? S 20:37:01 00:00:00 [kworker/0:0] | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_exec_accounting_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA exec accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_exec_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:496 TEST is exec accounting methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:498 GIVEN exec system accounting method list: |[]| and exec system accounting methodlist: |[]| INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:514 WHEN default exec accounting method list: |[]| and console exec accounting methodlist: |[]| INFO root:test_aaa.py:519 THEN test case result is |True| INFO root:test_aaa.py:520 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_exec_authorization_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA exec authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA authorization methods for exec: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_exec_authorization_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:227 TEST is exec authorization methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:229 GIVEN exec authorization method list: |['none']| INFO root:test_aaa.py:233 WHEN EOS exec authorization method list is set to |['none']| INFO root:test_aaa.py:237 THEN test case result is |True| INFO root:test_aaa.py:238 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_running_on_[kg-topology-CloudEOSEdge1] | Verify a list of daemons are running on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: TerminAttr daemon running is |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_daemons_are_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show daemon| on kg-topology-CloudEOSEdge1 INFO root:test_daemon.py:73 TEST is TerminAttr daemon running on |kg-topology-CloudEOSEdge1| INFO root:test_daemon.py:74 GIVEN expected TerminAttr running state: |True| INFO root:test_daemon.py:79 WHEN TerminAttr device running state is |True| INFO root:test_daemon.py:83 THEN test case result is |True| INFO root:test_daemon.py:84 OUTPUT of |show daemon| is : Process: TerminAttr (running with PID 1725) Uptime: 36 days, 19:44:57 (Start time: Thu Aug 13 01:18:37 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_priviledge_accounting_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA priviledge accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_priviledge_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:546 TEST is priviledge accounting methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:548 GIVEN priviledge system accounting method list: |[]| and priviledge system accounting method list: |[]| INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:564 WHEN default privilege accounting method list: |[]| and console privilege accounting method list: |[]| INFO root:test_aaa.py:569 THEN test case result is |True| INFO root:test_aaa.py:570 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_default_login_authentication_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA default login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA authentication methods for default login: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_default_login_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:270 TEST is default login authentication methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:272 GIVEN login authentication method list: |['local']| INFO root:test_aaa.py:276 WHEN EOS login authentication method list is set to |['local']| INFO root:test_aaa.py:280 THEN test case result is |True| INFO root:test_aaa.py:281 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_enabled_on_[kg-topology-CloudEOSEdge1] | Verify a list of daemons are enabled on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: TerminAttr daemon enabled is |True| and expected value is |True|. Test result is True -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_daemons_are_enabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:test_daemon.py:105 TEST is terminattr daemon enabled on |kg-topology-CloudEOSEdge1| INFO root:test_daemon.py:106 GIVEN expected terminattr​ enabled state: |True| INFO root:tests_tools.py:372 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show daemon| on kg-topology-CloudEOSEdge1 INFO root:test_daemon.py:114 WHEN terminattr​ device enabled state is |True| INFO root:test_daemon.py:118 THEN test case result is |True| INFO root:test_daemon.py:119 OUTPUT of |show daemon|: Process: TerminAttr (running with PID 1725) Uptime: 36 days, 19:44:57 (Start time: Thu Aug 13 01:18:37 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_accounting_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA dot1x accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA accounting exec methods for dot1x: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dot1x_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:594 TEST is dot1x accounting methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:596 GIVEN dot1x system accounting method list: |[]| and dot1x system accounting methodlist: |[]| INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:611 WHEN default dot1x accounting method list: |[]| and console dot1x accounting method list: |[]| INFO root:test_aaa.py:616 THEN test case result is |True| INFO root:test_aaa.py:617 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/lldp/test_lldp.py::LldpTests::test_if_lldp_rx_is_enabled_on_[kg-topology-CloudEosRR2] | Verify LLDP receive is enabled on interesting interfaces | 0.28 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2|: - On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True| TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|. GIVEN LLDP receive state is |True|. WHEN LLDP receive state is |True|. THEN test case result is |True|. OUTPUT of |show lldp| is: LLDP transmit interval : 30 seconds LLDP transmit holdtime : 120 seconds LLDP reinitialization delay : 2 seconds LLDP Management Address VRF : default Enabled optional TLVs: Port Description System Name System Description System Capabilities Management Address (best) IEEE802.1 Port VLAN ID IEEE802.3 Link Aggregation IEEE802.3 Maximum Frame Size IEEE802.3 Power Via MDI LLDP-MED Capabilities LLDP-MED Network Policy Port Tx Enabled Rx Enabled ----------- ---------------- ---------- Et1 Yes Yes Et100 Yes Yes -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_lldp_rx_is_enabled_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_lldp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_lldp_rx_is_enabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'} INFO root:tests_tools.py:372 Verify if show command |show lldp| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show lldp| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:520 Find the Index for test suite: test_lldp.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_lldp.py exists in results file at index 1 INFO root:tests_tools.py:535 Find Index for test case: test_if_lldp_rx_is_enabled_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:540 Test case test_if_lldp_rx_is_enabled_on_ exists in results file at index 0 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR2 to test case test_if_lldp_rx_is_enabled_on_ with parameters {'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp', 'test_suite': 'test_lldp.py', 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'actual_output': True, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_login_authentication_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_login_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:313 TEST is login authentication methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:315 GIVEN login authentication method list: |None| INFO root:test_aaa.py:332 WHEN EOS login authentication method list is set to |None| INFO root:test_aaa.py:334 THEN test case result is |True| INFO root:test_aaa.py:335 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_running_on_[kg-topology-CloudEOSEdge1] | Verify management api https server is running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| HTTPS Server is running state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:69 TEST is HTTPS API running on |kg-topology-CloudEOSEdge1| INFO root:test_api.py:70 GIVEN HTTPS API state is |True| INFO root:tests_tools.py:372 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge1 INFO root:test_api.py:80 WHEN HTTPS API state is |True| INFO root:test_api.py:83 THEN test case result is |True| INFO root:test_api.py:84 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 129224 Last hit: 0 seconds ago Bytes in: 19694799 Bytes out: 346730371 Requests: 122359 Commands: 244718 Duration: 10447.204 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 122359 19694799 346730371 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.14.101:443 Ethernet2 : https://11.201.14.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.1:443 Loopback10 : https://198.18.0.35:443 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_authentication_methods_set_on_[kg-topology-CloudEOSEdge1] | Verify AAA dot1x authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| AAA authentication methods for dot1x default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dot1x_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge1 INFO root:test_aaa.py:364 TEST is dot1x authentication methods list set correct on |kg-topology-CloudEOSEdge1| INFO root:test_aaa.py:366 GIVEN dot1x authentication method list: |[]| INFO root:test_aaa.py:370 WHEN EOS dot1x authentication method list is set to |[]| INFO root:test_aaa.py:374 THEN test case result is |True| INFO root:test_aaa.py:375 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEosRR2 | tests/logging/test_logging.py::LoggingTests::test_if_log_messages_appear_on_[kg-topology-CloudEosRR2] | Verify local log messages | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| message |critical| NOT found in local log On router |kg-topology-CloudEosRR2| message |warning| NOT found in local log On router |kg-topology-CloudEosRR2| message |ECC| NOT found in local log On router |kg-topology-CloudEosRR2| message |servers errors| NOT found in local log On router |kg-topology-CloudEosRR2| message |parity| NOT found in local log -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_logging.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_log_messages_appear_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show logging| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show logging| on kg-topology-CloudEosRR2 INFO root:test_logging.py:74 TEST for local log message critical on |kg-topology-CloudEosRR2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 20:27:38 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:27:43 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:27:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:30:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:31:33 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:02 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:27 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:33 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:41 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:36:48 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:16 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:37:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:32 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:43 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:49 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:57 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:53:47 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:12 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:54:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:57:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:22 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:58:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 21:03:15 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message warning on |kg-topology-CloudEosRR2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 20:27:38 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:27:43 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:27:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:30:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:31:33 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:02 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:27 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:33 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:41 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:36:48 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:16 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:37:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:32 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:43 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:49 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:57 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:53:47 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:12 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:54:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:57:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:22 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:58:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 21:03:15 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message ECC on |kg-topology-CloudEosRR2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 20:27:38 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:27:43 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:27:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:30:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:31:33 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:02 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:27 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:33 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:41 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:36:48 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:16 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:37:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:32 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:43 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:49 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:57 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:53:47 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:12 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:54:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:57:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:22 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:58:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 21:03:15 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message servers errors on |kg-topology-CloudEosRR2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 20:27:38 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:27:43 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:27:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:30:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:31:33 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:02 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:27 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:33 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:41 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:36:48 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:16 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:37:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:32 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:43 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:49 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:57 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:53:47 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:12 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:54:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:57:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:22 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:58:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 21:03:15 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message parity on |kg-topology-CloudEosRR2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 20:27:38 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:27:43 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:27:53 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:30:59 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:31:33 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:02 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:27 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:33 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:41 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:36:48 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:16 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:37:23 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:01 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:32 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:42 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:43 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:49 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:57 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:53:47 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:12 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:54:17 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:26 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:57:56 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:22 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:58:31 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:39 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 21:03:15 kg-topology-CloudEosRR2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_port_is_correct_on_[kg-topology-CloudEOSEdge1] | Verify https server is enabled on port 443 | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| HTTPS Server is running on port: |443| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_port_is_correct_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True} INFO root:test_api.py:106 TEST is HTTPS API port on |kg-topology-CloudEOSEdge1| INFO root:test_api.py:107 GIVEN HTTPS API port is |443| INFO root:tests_tools.py:372 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge1 INFO root:test_api.py:116 WHEN HTTPS API port is |443| INFO root:test_api.py:119 THEN test case result is |True| INFO root:test_api.py:120 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 129224 Last hit: 0 seconds ago Bytes in: 19694799 Bytes out: 346730371 Requests: 122359 Commands: 244718 Duration: 10447.204 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 122359 19694799 346730371 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.14.101:443 Ethernet2 : https://11.201.14.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.1:443 Loopback10 : https://198.18.0.35:443 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_enabled_on_[kg-topology-CloudEOSEdge1] | Verify management api https server is enabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| API is enabled state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_is_enabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:142 TEST is HTTPS API enabled on |kg-topology-CloudEOSEdge1| INFO root:test_api.py:143 GIVEN HTTPS API enabled is |True| INFO root:tests_tools.py:372 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge1 INFO root:test_api.py:152 WHEN HTTPS API enabled is |True| INFO root:test_api.py:155 THEN test case result is |True| INFO root:test_api.py:156 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 129224 Last hit: 0 seconds ago Bytes in: 19694799 Bytes out: 346730371 Requests: 122359 Commands: 244718 Duration: 10447.204 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 122359 19694799 346730371 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.14.101:443 Ethernet2 : https://11.201.14.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.1:443 Loopback10 : https://198.18.0.35:443 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/memory/test_memory.py::MemoryTests::test_memory_utilization_on_[kg-topology-CloudEosRR2] | Verify memory is not exceeding high utlization | 0.24 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ - On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%| TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|. GIVEN memory utilization is less than |70|. WHEN memory utilization is |38.402166283655056|. THEN test case result is |True|. OUTPUT of |show version| is: Arista vEOS Hardware version: Serial number: 93F97AD3A1044C742872BA1CFA684D63 System MAC address: 0654.9b7c.b00f Software image version: 4.23.1F-cloud-16179785.jakartarel (engineering build) Architecture: x86_64 Internal build version: 4.23.1F-cloud-16179785.jakartarel Internal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809 Uptime: 5 weeks, 1 days, 19 hours and 45 minutes Total memory: 7818736 kB Free memory: 2996156 kB -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_memory_utilization_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_memory.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_memory_utilization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show version| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show version| on kg-topology-CloudEosRR2 INFO root:tests_tools.py:520 Find the Index for test suite: test_memory.py on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_memory.py exists in results file at index 2 INFO root:tests_tools.py:535 Find Index for test case: test_memory_utilization_on_ on dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:540 Test case test_memory_utilization_on_ exists in results file at index 0 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEosRR2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEosRR2 to test case test_memory_utilization_on_ with parameters {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'result': True, 'test_suite': 'test_memory.py', 'test_result': True, 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'actual_output': 38.402166283655056, 'dut': 'kg-topology-CloudEosRR2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/dns/test_dns.py::DNSTests::test_if_dns_resolves_on_[kg-topology-CloudEOSEdge1] | Verify DNS is running by performing pings and verifying name resolution | 1.16 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| DNS resolution |Passed| for google.com On router |kg-topology-CloudEOSEdge1| DNS resolution |Passed| for cnn.com On router |kg-topology-CloudEOSEdge1| DNS resolution |Passed| for arista.com -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_dns.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dns_resolves_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True} INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge1| resolve google.com INFO root:test_dns.py:71 GIVEN URL is |google.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping google.com| is : PING google.com (172.217.9.46) 72(100) bytes of data. 76 bytes from ord38s08-in-f14.1e100.net (172.217.9.46): icmp_seq=1 ttl=100 (truncated) 76 bytes from ord38s08-in-f14.1e100.net (172.217.9.46): icmp_seq=2 ttl=100 (truncated) 76 bytes from ord38s08-in-f14.1e100.net (172.217.9.46): icmp_seq=3 ttl=100 (truncated) 76 bytes from ord38s08-in-f14.1e100.net (172.217.9.46): icmp_seq=4 ttl=100 (truncated) 76 bytes from ord38s08-in-f14.1e100.net (172.217.9.46): icmp_seq=5 ttl=100 (truncated) --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 61ms rtt min/avg/max/mdev = 17.187/17.235/17.373/0.108 ms, pipe 2, ipg/ewma 15.424/17.302 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge1| resolve cnn.com INFO root:test_dns.py:71 GIVEN URL is |cnn.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping cnn.com| is : PING cnn.com (151.101.65.67) 72(100) bytes of data. 80 bytes from 151.101.65.67 (151.101.65.67): icmp_seq=1 ttl=39 time=11.2 ms 80 bytes from 151.101.65.67 (151.101.65.67): icmp_seq=2 ttl=39 time=11.1 ms 80 bytes from 151.101.65.67 (151.101.65.67): icmp_seq=3 ttl=39 time=11.0 ms 80 bytes from 151.101.65.67 (151.101.65.67): icmp_seq=4 ttl=39 time=11.1 ms 80 bytes from 151.101.65.67 (151.101.65.67): icmp_seq=5 ttl=39 time=11.0 ms --- cnn.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 75ms rtt min/avg/max/mdev = 11.048/11.131/11.212/0.090 ms, pipe 2, ipg/ewma 18.937/11.169 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge1| resolve arista.com INFO root:test_dns.py:71 GIVEN URL is |arista.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping arista.com| is : PING arista.com (64.68.200.46) 72(100) bytes of data. 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=1 ttl=39 time=23.4 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=2 ttl=39 time=23.3 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=3 ttl=39 time=23.4 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=4 ttl=39 time=23.5 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=5 ttl=39 time=23.3 ms --- arista.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 66ms rtt min/avg/max/mdev = 23.308/23.418/23.531/0.077 ms, pipe 3, ipg/ewma 16.693/23.439 ms | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/api/test_api.py::APITests::test_if_management_http_api_server_is_running_on_[kg-topology-CloudEOSEdge1] | Verify management api http server is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_http_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:178 TEST is HTTP API running on |kg-topology-CloudEOSEdge1| INFO root:test_api.py:179 GIVEN HTTP API state is |False| INFO root:tests_tools.py:372 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge1 INFO root:test_api.py:189 WHEN HTTP API state is |False| INFO root:test_api.py:192 THEN test case result is |True| INFO root:test_api.py:193 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 129224 Last hit: 0 seconds ago Bytes in: 19694799 Bytes out: 346730371 Requests: 122359 Commands: 244718 Duration: 10447.204 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 122359 19694799 346730371 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.14.101:443 Ethernet2 : https://11.201.14.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.1:443 Loopback10 : https://198.18.0.35:443 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_is_synchronized_on_[kg-topology-CloudEosRR2] | Verify ntp is synchronzied | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| NTP synchronized status is: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_ntp_is_synchronized_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show ntp status| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show ntp status| on kg-topology-CloudEosRR2 INFO root:test_ntp.py:70 TEST is NTP synchronized on |kg-topology-CloudEosRR2| INFO root:test_ntp.py:71 GIVEN NTP synchronized is |True| INFO root:test_ntp.py:77 WHEN NTP configuration file is |True| INFO root:test_ntp.py:80 THEN test case result is |True| INFO root:test_ntp.py:81 OUTPUT of |show ntp status| is : synchronised to NTP server (169.254.169.123) at stratum 4 time correct to within 20 ms polling server every 1024 s | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/filesystem/test_filesystem.py::FileSystemTests::test_if_files_on_[kg-topology-CloudEOSEdge1] | Verify filesystem is correct and expected files are present | 0.75 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: flash:startup-config file isDir state is |False| On router |kg-topology-CloudEOSEdge1|: flash:veos-config file isDir state is |False| On router |kg-topology-CloudEOSEdge1|: flash:zerotouch-config file isDir state is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_filesystem.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_files_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True} INFO root:test_filesystem.py:70 TEST is flash:startup-config file present on |kg-topology-CloudEOSEdge1| INFO root:test_filesystem.py:71 GIVEN expected flash:startup-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:startup-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)), 'name': 'kg-topology-CloudEOSEdge1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet2': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Vlan4093': {'lastStatusChangeTimestamp': 1597281918.5968578, 'name': 'Vlan4093', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vlan4094': {'lastStatusChangeTimestamp': 1597281695.724552, 'name': 'Vlan4094', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vxlan1': {'vniInDottedNotation': False, 'controllerClientMode': False, 'description': '', 'portDot1qVniMapping': False, 'mcastRouting': False, 'controllerControlPlane': False, 'srcIpIntf': 'Loopback0', 'vtepAddrMask': '255.255.255.255', 'hardware': 'vxlan', 'mcastGrpDecap': '', 'bandwidth': 0, 'use32BitVni': False, 'floodMcastGrp': '0.0.0.0', 'vlanToVniMap': {'4093': {'source': 'evpn', 'vni': 102}, '4094': {'source': 'evpn', 'vni': 101}}, 'vlanToVtepList': {}, 'arpReplyRelayMode': False, 'srcIpAddr': '11.201.0.1', 'dataPathLearningMode': False, 'interfaceAddress': [], 'vtepSourcePruningAll': False, 'mlagSharedRouterMacAddr': '00:00:00:00:00:00', 'staticFloodlists': False, 'vxlanEncapsulation': 'ipv4', 'name': 'Vxlan1', 'vccImportVlan': '4093-4094', 'replicationMode': 'headendNonVcs', 'vtepSetForSourcePruning': [], 'mtu': 0, 'interfaceStatus': 'connected', 'vtepToVtepBridging': False, 'l3MtuConfigured': False, 'vrfToVniMap': {'default': 101, 'prod': 102}, 'arpLocalAddress': False, 'vlanToLearnRestrict': {'4093': {'prefixList': [], 'learnFrom': 'learnFromAny'}, '4094': {'prefixList': [], 'learnFrom': 'learnFromAny'}}, 'lineProtocolStatus': 'up', 'forwardingModel': 'bridged'}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281540.2018194, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '02:9e:d2:0a:bb:fc', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463006.927123, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:9e:d2:0a:bb:fc', 'description': ''}, 'Ethernet2': {'lastStatusChangeTimestamp': 1597281538.1862884, 'lanes': 0, 'name': 'Ethernet2', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:3d:76:50:e3:16', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 40927.501816637945, 'inPktsRate': 35.037287576001525, 'outBitsRate': 27739.925604616627, 'updateInterval': 300.0, 'outPktsRate': 32.493524682358114}, 'mtu': 9000, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 142623412, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463006.928335, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 29335401047, 'outDiscards': 0, 'outOctets': 16839145488, 'inUcastPkts': 161292245, 'inTotalPkts': 161292245, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:3d:76:50:e3:16', 'description': ''}, 'Ethernet2.102': {'lastStatusChangeTimestamp': 1597281918.5901656, 'name': 'Ethernet2.102', 'interfaceStatus': 'connected', 'mtu': 9000, 'hardware': 'subinterface', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:3d:76:50:e3:16', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281538.239688, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:9e:d2:88:21:f6', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 43746.06999735788, 'inPktsRate': 41.80958255284627, 'outBitsRate': 92412.46728455611, 'updateInterval': 300.0, 'outPktsRate': 46.944238309923286}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 170050138, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463006.930405, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 16774522127, 'outDiscards': 0, 'outOctets': 36345827611, 'inUcastPkts': 142915339, 'inTotalPkts': 142915339, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:9e:d2:88:21:f6', 'description': ''}, 'Loopback0': {'lastStatusChangeTimestamp': 1597281693.6663582, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281523.1778927, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.35'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge1', 'hostname': 'kg-topology-CloudEOSEdge1'}, 'text': 'Hostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 3181553.48, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DB3968957436BF7623C810C9F13FC97E', 'systemMacAddress': '02:9e:d2:0a:bb:fc', 'bootupTimestamp': 1597281454.0, 'memFree': 2751172, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2751156 kB\n\n'}, 'show processes': {'json': {'processes': {'1928': {'totalActiveTime': 3254529, 'memPct': 3.7, 'cpuPct': 102.0, 'startTime': 1597281524.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1116': {'totalActiveTime': 30, 'memPct': 0.9, 'cpuPct': 2.7, 'startTime': 1600461906.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1725': {'totalActiveTime': 14693, 'memPct': 2.3, 'cpuPct': 0.4, 'startTime': 1597281516.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1582': {'totalActiveTime': 6896, 'memPct': 8.6, 'cpuPct': 0.2, 'startTime': 1597281495.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1233': {'totalActiveTime': 6067, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '3405': {'totalActiveTime': 5774, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281695.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 306, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 30, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 49, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 90, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281455.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '380': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '407': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '499': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '747': {'totalActiveTime': 186, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '782': {'totalActiveTime': 65, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '789': {'totalActiveTime': 87, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '807': {'totalActiveTime': 16, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '819': {'totalActiveTime': 23, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '824': {'totalActiveTime': 5, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '1005': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1007': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1017': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1018': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1028': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461905.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '1034': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1038': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1039': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1064': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1179': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1180': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1213': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1216': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1218': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1232': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1478': {'totalActiveTime': 733, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1486': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1501': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1538': {'totalActiveTime': 158, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1539': {'totalActiveTime': 3090, 'memPct': 2.6, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1581': {'totalActiveTime': 46, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1584': {'totalActiveTime': 141, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1585': {'totalActiveTime': 76, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 549, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1719': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1720': {'totalActiveTime': 240, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1726': {'totalActiveTime': 166, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1745': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1746': {'totalActiveTime': 318, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 1132, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 2194, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1768': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1769': {'totalActiveTime': 276, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1772': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 224, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1775': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1777': {'totalActiveTime': 532, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1779': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 1816, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1781': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1783': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1784': {'totalActiveTime': 40, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1787': {'totalActiveTime': 2634, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1789': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1790': {'totalActiveTime': 629, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1791': {'totalActiveTime': 94, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1794': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1795': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1796': {'totalActiveTime': 267, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1797': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1798': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 1538, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1800': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1802': {'totalActiveTime': 355, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1804': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 139, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1807': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1809': {'totalActiveTime': 250, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1815': {'totalActiveTime': 245, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1817': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1818': {'totalActiveTime': 345, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1821': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 272, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1824': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1826': {'totalActiveTime': 209, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1828': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1831': {'totalActiveTime': 130, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1839': {'totalActiveTime': 71, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1841': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1842': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1844': {'totalActiveTime': 152, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1847': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 38, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1853': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1854': {'totalActiveTime': 38, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1859': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 429, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1881': {'totalActiveTime': 279, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 40, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 118, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1906': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1907': {'totalActiveTime': 584, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1909': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1910': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1911': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1912': {'totalActiveTime': 146, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1915': {'totalActiveTime': 271, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1916': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1919': {'totalActiveTime': 122, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 1104, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '1922': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '1926': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2295': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2356': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2360': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2363': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2448': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462141.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2617': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2631': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2634': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2637': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2660': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2661': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2662': {'totalActiveTime': 597, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2671': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2699': {'totalActiveTime': 62, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3281': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3289': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3290': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3295': {'totalActiveTime': 478, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3297': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3301': {'totalActiveTime': 245, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3304': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3307': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3308': {'totalActiveTime': 269, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3365': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3367': {'totalActiveTime': 68, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3403': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3404': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3929': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281918.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '4048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281919.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '5105': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462501.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '6523': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462801.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '6625': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462861.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '7140': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600463007.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '7142': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600463007.0, 'cmd': '[ConfigAgent]', 'state': 'Rs', 'ttyName': '?'}, '8818': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1599873559.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '18981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18982': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18983': {'totalActiveTime': 127, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '19027': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '19029': {'totalActiveTime': 124, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '30730': {'totalActiveTime': 934, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597697371.0, 'cmd': 'dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay', 'state': 'Sl', 'ttyName': '?'}, '30750': {'totalActiveTime': 769, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597697372.0, 'cmd': 'docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc', 'state': 'Ssl', 'ttyName': '?'}, '31909': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461421.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3181553.95, 'loadAvg': [1.82, 1.47, 1.39], 'users': 0, 'currentTime': 1600463008.246948}}, 'text': " 21:03:28 up 36 days, 19:45, 0 users, load average: 1.82, 1.47, 1.39\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 1928 102 3.7 ? Sl Aug 13 37-16:02:10 Sfe\n 1116 2.7 0.9 ? SNl 20:45:06 00:00:30 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1725 0.4 2.3 ? Sl Aug 13 04:04:54 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1582 0.2 8.6 ? Sl Aug 13 01:54:56 ConfigAgent\n 1233 0.1 0.9 ? S Aug 13 01:41:07 ProcMgr-worker\n 3405 0.1 1.4 ? S Aug 13 01:36:14 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:05:06 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:30 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:49 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:30 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 747 0.0 0.1 ? Ss Aug 13 00:03:06 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 782 0.0 0.0 ? Ss Aug 13 00:01:05 /usr/bin/ProcMonitor\n 789 0.0 0.0 ? Ss Aug 13 00:01:27 /usr/lib/systemd/systemd-logind\n 807 0.0 0.0 ? Ss Aug 13 00:00:16 /usr/sbin/crond -n\n 819 0.0 0.0 ? S<s Aug 13 00:00:23 /usr/bin/wdogdev -t 60\n 824 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1017 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1028 0.0 0.0 ? S 20:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1478 0.0 0.0 ? S Aug 13 00:12:13 /usr/bin/EosOomAdjust\n 1486 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu]\n 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1538 0.0 0.0 ? S Aug 13 00:02:38 /usr/bin/SlabMonitor\n 1539 0.0 2.6 ? S Aug 13 00:51:30 Sysdb\n 1581 0.0 1.2 ? S Aug 13 00:00:46 StageMgr\n 1584 0.0 1.4 ? S Aug 13 00:02:21 Fru\n 1585 0.0 1.8 ? S Aug 13 00:01:16 Launcher\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1718 0.0 1.2 ? S Aug 13 00:09:09 Lldp\n 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1720 0.0 1.2 ? S Aug 13 00:04:00 McastCommon\n 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1726 0.0 1.1 ? S Aug 13 00:02:46 PortSec\n 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1746 0.0 1.4 ? S Aug 13 00:05:18 Bfd\n 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.3 ? S Aug 13 00:18:52 Lag\n 1754 0.0 1.7 ? S Aug 13 00:36:34 SuperServer\n 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1769 0.0 1.5 ? S Aug 13 00:04:36 Ira\n 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.2 ? S Aug 13 00:03:44 LedPolicy\n 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1777 0.0 1.3 ? S Aug 13 00:08:52 EventMgr\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.2 ? S Aug 13 00:30:16 StpTxRx\n 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1784 0.0 1.1 ? S Aug 13 00:00:40 StandbyCpld\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1787 0.0 1.0 ? S Aug 13 00:43:54 AgentMonitor\n 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1790 0.0 1.6 ? Sl Aug 13 00:10:29 Aaa\n 1791 0.0 1.2 ? S Aug 13 00:01:34 Tunnel\n 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1796 0.0 1.2 ? S Aug 13 00:04:27 StpTopology\n 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1799 0.0 1.4 ? S Aug 13 00:25:38 Acl\n 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1802 0.0 1.1 ? S Aug 13 00:05:55 Stp\n 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.1 ? S Aug 13 00:02:19 KernelNetworkInfo\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1809 0.0 1.2 ? S Aug 13 00:04:10 McastCommon6\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1815 0.0 1.2 ? S Aug 13 00:04:05 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1818 0.0 1.5 ? S Aug 13 00:05:45 Arp\n 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.4 ? S Aug 13 00:04:32 KernelFib\n 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1826 0.0 1.2 ? S Aug 13 00:03:29 Qos\n 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1831 0.0 1.1 ? S Aug 13 00:02:10 Thermostat\n 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1839 0.0 1.2 ? S Aug 13 00:01:11 L2Rib\n 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1844 0.0 1.2 ? S Aug 13 00:02:32 TopoAgent\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1849 0.0 1.1 ? S Aug 13 00:00:38 PowerFuse\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1854 0.0 1.1 ? S Aug 13 00:00:38 PowerManager\n 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1860 0.0 1.4 ? S Aug 13 00:07:09 Ebra\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.1 ? S Aug 13 00:00:41 ReloadCauseAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1881 0.0 1.5 ? S Aug 13 00:04:39 IgmpSnooping\n 1883 0.0 1.1 ? S Aug 13 00:00:40 SharedSecretProfile\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.3 ? S Aug 13 00:01:58 StaticRoute\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1907 0.0 1.7 ? S Aug 13 00:09:44 IpRib\n 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1912 0.0 1.9 ? S Aug 13 00:02:26 BgpCliHelper\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1915 0.0 1.3 ? S Aug 13 00:04:31 ConnectedRoute\n 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1919 0.0 1.3 ? S Aug 13 00:02:02 RouteInput\n 1920 0.0 2.3 ? Sl Aug 13 00:18:24 Bgp\n 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2295 0.0 0.0 ? Ssl Aug 13 00:00:22 /usr/sbin/rsyslogd -n\n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2363 0.0 1.1 ? S Aug 13 00:00:41 LicenseManager\n 2448 0.0 0.0 ? S 20:49:01 00:00:00 [kworker/0:2]\n 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2637 0.0 0.0 ? S Aug 13 00:00:22 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console\n 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2662 0.0 1.2 ? S Aug 13 00:09:57 Ipsec\n 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2699 0.0 0.1 ? Ssl Aug 13 00:01:02 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3295 0.0 1.2 ? S Aug 13 00:07:58 Nat\n 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3301 0.0 1.3 ? S Aug 13 00:04:05 Vxlan\n 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3308 0.0 1.3 ? S Aug 13 00:04:29 VxlanSwFwd\n 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3367 0.0 0.1 ? Ssl Aug 13 00:01:08 /usr/libexec/strongswan/charon --use-syslog\n 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 5105 0.0 0.0 ? S 20:55:01 00:00:00 [kworker/0:1]\n 6523 0.0 0.0 ? S 21:00:01 00:00:00 [kworker/0:3]\n 6625 0.0 0.0 ? S 21:01:01 00:00:00 [kworker/0:4]\n 7170 0.0 0.0 ? Rs 21:03:28 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n 7172 0.0 0.0 ? Rs 21:03:28 00:00:00 [ConfigAgent]\n 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1]\n18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18983 0.0 1.3 ? Sl Aug 26 00:02:07 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n19029 0.0 0.1 ? S Aug 26 00:02:04 nginx: worker process \n30730 0.0 0.4 ? Sl Aug 17 00:15:34 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay\n30750 0.0 0.1 ? Ssl Aug 17 00:12:49 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc\n31909 0.0 0.0 ? S 20:37:01 00:00:00 [kworker/0:0]\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet2': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 132765, 'authorizationAllowed': 2865, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 7, 'authenticationUnavailable': 389, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 132769\n Failed: 7\n Service unavailable: 389\n\nAuthorization\n Allowed: 2865\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'134577': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600462995, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n134577 kgrozis command-api E 0:00:15 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 35, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 35 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.123, 'jitter': 0.271, 'lastReceived': 1600461991.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': -0.059, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 1022 1024 377 0.123 -0.059 0.271\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281517.196137, 'pid': 1725, 'enabled': True, 'uptime': 3181497.0500000003, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1725)\nUptime: 36 days, 19:44:57 (Start time: Thu Aug 13 01:18:37 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291191296 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291191296 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 122355, 'bytesOut': 346726875, 'lastHitTime': 1600463015.749108, 'bytesIn': 19694161}}, 'bytesOut': 346726875, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 129220, 'vrf': 'default', 'lastHitTime': 1600463015.7490773, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 10447.116097904625, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 122355, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.14.101:443', 'Ethernet2 : https://11.201.14.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.1:443', 'Loopback10 : https://198.18.0.35:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 19694161, 'commandCount': 244710, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 129223\nLast hit: 0 seconds ago\nBytes in: 19694634\nBytes out: 346729107\nRequests: 122358\nCommands: 244716\nDuration: 10447.171 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 122358 19694634 346729107 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.14.101:443 \nEthernet2 : https://11.201.14.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.1:443 \nLoopback10 : https://198.18.0.35:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:27:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:50 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:40 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:47 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:16 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:54 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:51:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:30 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:22 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:27:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:50 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:40 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:47 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:16 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:54 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:51:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:30 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:22 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:startup-config with connnection Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:startup-config on dut kg-topology-CloudEOSEdge1: [{'command': 'show file information flash:startup-config', 'result': {'isDir': False, 'path': 'flash:/startup-config', 'fileName': '/mnt/flash/startup-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:startup-config on dut kg-topology-CloudEOSEdge1: [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/startup-config: type is file INFO root:test_filesystem.py:80 WHEN flash:startup-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:startup-config| is : [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:veos-config file present on |kg-topology-CloudEOSEdge1| INFO root:test_filesystem.py:71 GIVEN expected flash:veos-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:veos-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)), 'name': 'kg-topology-CloudEOSEdge1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet2': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Vlan4093': {'lastStatusChangeTimestamp': 1597281918.5968578, 'name': 'Vlan4093', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vlan4094': {'lastStatusChangeTimestamp': 1597281695.724552, 'name': 'Vlan4094', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vxlan1': {'vniInDottedNotation': False, 'controllerClientMode': False, 'description': '', 'portDot1qVniMapping': False, 'mcastRouting': False, 'controllerControlPlane': False, 'srcIpIntf': 'Loopback0', 'vtepAddrMask': '255.255.255.255', 'hardware': 'vxlan', 'mcastGrpDecap': '', 'bandwidth': 0, 'use32BitVni': False, 'floodMcastGrp': '0.0.0.0', 'vlanToVniMap': {'4093': {'source': 'evpn', 'vni': 102}, '4094': {'source': 'evpn', 'vni': 101}}, 'vlanToVtepList': {}, 'arpReplyRelayMode': False, 'srcIpAddr': '11.201.0.1', 'dataPathLearningMode': False, 'interfaceAddress': [], 'vtepSourcePruningAll': False, 'mlagSharedRouterMacAddr': '00:00:00:00:00:00', 'staticFloodlists': False, 'vxlanEncapsulation': 'ipv4', 'name': 'Vxlan1', 'vccImportVlan': '4093-4094', 'replicationMode': 'headendNonVcs', 'vtepSetForSourcePruning': [], 'mtu': 0, 'interfaceStatus': 'connected', 'vtepToVtepBridging': False, 'l3MtuConfigured': False, 'vrfToVniMap': {'default': 101, 'prod': 102}, 'arpLocalAddress': False, 'vlanToLearnRestrict': {'4093': {'prefixList': [], 'learnFrom': 'learnFromAny'}, '4094': {'prefixList': [], 'learnFrom': 'learnFromAny'}}, 'lineProtocolStatus': 'up', 'forwardingModel': 'bridged'}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281540.2018194, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '02:9e:d2:0a:bb:fc', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463006.927123, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:9e:d2:0a:bb:fc', 'description': ''}, 'Ethernet2': {'lastStatusChangeTimestamp': 1597281538.1862884, 'lanes': 0, 'name': 'Ethernet2', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:3d:76:50:e3:16', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 40927.501816637945, 'inPktsRate': 35.037287576001525, 'outBitsRate': 27739.925604616627, 'updateInterval': 300.0, 'outPktsRate': 32.493524682358114}, 'mtu': 9000, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 142623412, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463006.928335, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 29335401047, 'outDiscards': 0, 'outOctets': 16839145488, 'inUcastPkts': 161292245, 'inTotalPkts': 161292245, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:3d:76:50:e3:16', 'description': ''}, 'Ethernet2.102': {'lastStatusChangeTimestamp': 1597281918.5901656, 'name': 'Ethernet2.102', 'interfaceStatus': 'connected', 'mtu': 9000, 'hardware': 'subinterface', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:3d:76:50:e3:16', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281538.239688, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:9e:d2:88:21:f6', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 43746.06999735788, 'inPktsRate': 41.80958255284627, 'outBitsRate': 92412.46728455611, 'updateInterval': 300.0, 'outPktsRate': 46.944238309923286}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 170050138, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463006.930405, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 16774522127, 'outDiscards': 0, 'outOctets': 36345827611, 'inUcastPkts': 142915339, 'inTotalPkts': 142915339, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:9e:d2:88:21:f6', 'description': ''}, 'Loopback0': {'lastStatusChangeTimestamp': 1597281693.6663582, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281523.1778927, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.35'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge1', 'hostname': 'kg-topology-CloudEOSEdge1'}, 'text': 'Hostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 3181553.48, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DB3968957436BF7623C810C9F13FC97E', 'systemMacAddress': '02:9e:d2:0a:bb:fc', 'bootupTimestamp': 1597281454.0, 'memFree': 2751172, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2751156 kB\n\n'}, 'show processes': {'json': {'processes': {'1928': {'totalActiveTime': 3254529, 'memPct': 3.7, 'cpuPct': 102.0, 'startTime': 1597281524.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1116': {'totalActiveTime': 30, 'memPct': 0.9, 'cpuPct': 2.7, 'startTime': 1600461906.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1725': {'totalActiveTime': 14693, 'memPct': 2.3, 'cpuPct': 0.4, 'startTime': 1597281516.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1582': {'totalActiveTime': 6896, 'memPct': 8.6, 'cpuPct': 0.2, 'startTime': 1597281495.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1233': {'totalActiveTime': 6067, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '3405': {'totalActiveTime': 5774, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281695.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 306, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 30, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 49, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 90, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281455.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '380': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '407': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '499': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '747': {'totalActiveTime': 186, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '782': {'totalActiveTime': 65, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '789': {'totalActiveTime': 87, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '807': {'totalActiveTime': 16, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '819': {'totalActiveTime': 23, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '824': {'totalActiveTime': 5, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '1005': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1007': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1017': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1018': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1028': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461905.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '1034': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1038': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1039': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1064': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1179': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1180': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1213': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1216': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1218': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1232': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1478': {'totalActiveTime': 733, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1486': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1501': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1538': {'totalActiveTime': 158, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1539': {'totalActiveTime': 3090, 'memPct': 2.6, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1581': {'totalActiveTime': 46, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1584': {'totalActiveTime': 141, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1585': {'totalActiveTime': 76, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 549, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1719': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1720': {'totalActiveTime': 240, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1726': {'totalActiveTime': 166, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1745': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1746': {'totalActiveTime': 318, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 1132, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 2194, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1768': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1769': {'totalActiveTime': 276, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1772': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 224, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1775': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1777': {'totalActiveTime': 532, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1779': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 1816, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1781': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1783': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1784': {'totalActiveTime': 40, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1787': {'totalActiveTime': 2634, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1789': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1790': {'totalActiveTime': 629, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1791': {'totalActiveTime': 94, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1794': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1795': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1796': {'totalActiveTime': 267, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1797': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1798': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 1538, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1800': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1802': {'totalActiveTime': 355, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1804': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 139, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1807': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1809': {'totalActiveTime': 250, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1815': {'totalActiveTime': 245, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1817': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1818': {'totalActiveTime': 345, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1821': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 272, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1824': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1826': {'totalActiveTime': 209, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1828': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1831': {'totalActiveTime': 130, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1839': {'totalActiveTime': 71, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1841': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1842': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1844': {'totalActiveTime': 152, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1847': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 38, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1853': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1854': {'totalActiveTime': 38, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1859': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 429, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1881': {'totalActiveTime': 279, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 40, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 118, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1906': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1907': {'totalActiveTime': 584, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1909': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1910': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1911': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1912': {'totalActiveTime': 146, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1915': {'totalActiveTime': 271, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1916': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1919': {'totalActiveTime': 122, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 1104, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '1922': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '1926': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2295': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2356': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2360': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2363': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2448': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462141.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2617': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2631': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2634': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2637': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2660': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2661': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2662': {'totalActiveTime': 597, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2671': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2699': {'totalActiveTime': 62, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3281': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3289': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3290': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3295': {'totalActiveTime': 478, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3297': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3301': {'totalActiveTime': 245, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3304': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3307': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3308': {'totalActiveTime': 269, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3365': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3367': {'totalActiveTime': 68, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3403': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3404': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3929': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281918.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '4048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281919.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '5105': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462501.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '6523': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462801.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '6625': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462861.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '7140': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600463007.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '7142': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600463007.0, 'cmd': '[ConfigAgent]', 'state': 'Rs', 'ttyName': '?'}, '8818': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1599873559.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '18981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18982': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18983': {'totalActiveTime': 127, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '19027': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '19029': {'totalActiveTime': 124, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '30730': {'totalActiveTime': 934, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597697371.0, 'cmd': 'dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay', 'state': 'Sl', 'ttyName': '?'}, '30750': {'totalActiveTime': 769, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597697372.0, 'cmd': 'docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc', 'state': 'Ssl', 'ttyName': '?'}, '31909': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461421.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3181553.95, 'loadAvg': [1.82, 1.47, 1.39], 'users': 0, 'currentTime': 1600463008.246948}}, 'text': " 21:03:28 up 36 days, 19:45, 0 users, load average: 1.82, 1.47, 1.39\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 1928 102 3.7 ? Sl Aug 13 37-16:02:10 Sfe\n 1116 2.7 0.9 ? SNl 20:45:06 00:00:30 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1725 0.4 2.3 ? Sl Aug 13 04:04:54 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1582 0.2 8.6 ? Sl Aug 13 01:54:56 ConfigAgent\n 1233 0.1 0.9 ? S Aug 13 01:41:07 ProcMgr-worker\n 3405 0.1 1.4 ? S Aug 13 01:36:14 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:05:06 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:30 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:49 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:30 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 747 0.0 0.1 ? Ss Aug 13 00:03:06 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 782 0.0 0.0 ? Ss Aug 13 00:01:05 /usr/bin/ProcMonitor\n 789 0.0 0.0 ? Ss Aug 13 00:01:27 /usr/lib/systemd/systemd-logind\n 807 0.0 0.0 ? Ss Aug 13 00:00:16 /usr/sbin/crond -n\n 819 0.0 0.0 ? S<s Aug 13 00:00:23 /usr/bin/wdogdev -t 60\n 824 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1017 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1028 0.0 0.0 ? S 20:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1478 0.0 0.0 ? S Aug 13 00:12:13 /usr/bin/EosOomAdjust\n 1486 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu]\n 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1538 0.0 0.0 ? S Aug 13 00:02:38 /usr/bin/SlabMonitor\n 1539 0.0 2.6 ? S Aug 13 00:51:30 Sysdb\n 1581 0.0 1.2 ? S Aug 13 00:00:46 StageMgr\n 1584 0.0 1.4 ? S Aug 13 00:02:21 Fru\n 1585 0.0 1.8 ? S Aug 13 00:01:16 Launcher\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1718 0.0 1.2 ? S Aug 13 00:09:09 Lldp\n 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1720 0.0 1.2 ? S Aug 13 00:04:00 McastCommon\n 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1726 0.0 1.1 ? S Aug 13 00:02:46 PortSec\n 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1746 0.0 1.4 ? S Aug 13 00:05:18 Bfd\n 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.3 ? S Aug 13 00:18:52 Lag\n 1754 0.0 1.7 ? S Aug 13 00:36:34 SuperServer\n 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1769 0.0 1.5 ? S Aug 13 00:04:36 Ira\n 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.2 ? S Aug 13 00:03:44 LedPolicy\n 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1777 0.0 1.3 ? S Aug 13 00:08:52 EventMgr\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.2 ? S Aug 13 00:30:16 StpTxRx\n 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1784 0.0 1.1 ? S Aug 13 00:00:40 StandbyCpld\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1787 0.0 1.0 ? S Aug 13 00:43:54 AgentMonitor\n 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1790 0.0 1.6 ? Sl Aug 13 00:10:29 Aaa\n 1791 0.0 1.2 ? S Aug 13 00:01:34 Tunnel\n 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1796 0.0 1.2 ? S Aug 13 00:04:27 StpTopology\n 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1799 0.0 1.4 ? S Aug 13 00:25:38 Acl\n 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1802 0.0 1.1 ? S Aug 13 00:05:55 Stp\n 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.1 ? S Aug 13 00:02:19 KernelNetworkInfo\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1809 0.0 1.2 ? S Aug 13 00:04:10 McastCommon6\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1815 0.0 1.2 ? S Aug 13 00:04:05 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1818 0.0 1.5 ? S Aug 13 00:05:45 Arp\n 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.4 ? S Aug 13 00:04:32 KernelFib\n 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1826 0.0 1.2 ? S Aug 13 00:03:29 Qos\n 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1831 0.0 1.1 ? S Aug 13 00:02:10 Thermostat\n 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1839 0.0 1.2 ? S Aug 13 00:01:11 L2Rib\n 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1844 0.0 1.2 ? S Aug 13 00:02:32 TopoAgent\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1849 0.0 1.1 ? S Aug 13 00:00:38 PowerFuse\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1854 0.0 1.1 ? S Aug 13 00:00:38 PowerManager\n 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1860 0.0 1.4 ? S Aug 13 00:07:09 Ebra\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.1 ? S Aug 13 00:00:41 ReloadCauseAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1881 0.0 1.5 ? S Aug 13 00:04:39 IgmpSnooping\n 1883 0.0 1.1 ? S Aug 13 00:00:40 SharedSecretProfile\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.3 ? S Aug 13 00:01:58 StaticRoute\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1907 0.0 1.7 ? S Aug 13 00:09:44 IpRib\n 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1912 0.0 1.9 ? S Aug 13 00:02:26 BgpCliHelper\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1915 0.0 1.3 ? S Aug 13 00:04:31 ConnectedRoute\n 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1919 0.0 1.3 ? S Aug 13 00:02:02 RouteInput\n 1920 0.0 2.3 ? Sl Aug 13 00:18:24 Bgp\n 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2295 0.0 0.0 ? Ssl Aug 13 00:00:22 /usr/sbin/rsyslogd -n\n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2363 0.0 1.1 ? S Aug 13 00:00:41 LicenseManager\n 2448 0.0 0.0 ? S 20:49:01 00:00:00 [kworker/0:2]\n 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2637 0.0 0.0 ? S Aug 13 00:00:22 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console\n 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2662 0.0 1.2 ? S Aug 13 00:09:57 Ipsec\n 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2699 0.0 0.1 ? Ssl Aug 13 00:01:02 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3295 0.0 1.2 ? S Aug 13 00:07:58 Nat\n 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3301 0.0 1.3 ? S Aug 13 00:04:05 Vxlan\n 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3308 0.0 1.3 ? S Aug 13 00:04:29 VxlanSwFwd\n 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3367 0.0 0.1 ? Ssl Aug 13 00:01:08 /usr/libexec/strongswan/charon --use-syslog\n 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 5105 0.0 0.0 ? S 20:55:01 00:00:00 [kworker/0:1]\n 6523 0.0 0.0 ? S 21:00:01 00:00:00 [kworker/0:3]\n 6625 0.0 0.0 ? S 21:01:01 00:00:00 [kworker/0:4]\n 7170 0.0 0.0 ? Rs 21:03:28 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n 7172 0.0 0.0 ? Rs 21:03:28 00:00:00 [ConfigAgent]\n 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1]\n18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18983 0.0 1.3 ? Sl Aug 26 00:02:07 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n19029 0.0 0.1 ? S Aug 26 00:02:04 nginx: worker process \n30730 0.0 0.4 ? Sl Aug 17 00:15:34 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay\n30750 0.0 0.1 ? Ssl Aug 17 00:12:49 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc\n31909 0.0 0.0 ? S 20:37:01 00:00:00 [kworker/0:0]\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet2': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 132765, 'authorizationAllowed': 2865, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 7, 'authenticationUnavailable': 389, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 132769\n Failed: 7\n Service unavailable: 389\n\nAuthorization\n Allowed: 2865\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'134577': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600462995, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n134577 kgrozis command-api E 0:00:15 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 35, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 35 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.123, 'jitter': 0.271, 'lastReceived': 1600461991.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': -0.059, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 1022 1024 377 0.123 -0.059 0.271\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281517.196137, 'pid': 1725, 'enabled': True, 'uptime': 3181497.0500000003, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1725)\nUptime: 36 days, 19:44:57 (Start time: Thu Aug 13 01:18:37 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291191296 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291191296 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 122355, 'bytesOut': 346726875, 'lastHitTime': 1600463015.749108, 'bytesIn': 19694161}}, 'bytesOut': 346726875, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 129220, 'vrf': 'default', 'lastHitTime': 1600463015.7490773, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 10447.116097904625, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 122355, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.14.101:443', 'Ethernet2 : https://11.201.14.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.1:443', 'Loopback10 : https://198.18.0.35:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 19694161, 'commandCount': 244710, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 129223\nLast hit: 0 seconds ago\nBytes in: 19694634\nBytes out: 346729107\nRequests: 122358\nCommands: 244716\nDuration: 10447.171 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 122358 19694634 346729107 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.14.101:443 \nEthernet2 : https://11.201.14.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.1:443 \nLoopback10 : https://198.18.0.35:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:27:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:50 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:40 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:47 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:16 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:54 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:51:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:30 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:22 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:27:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:50 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:40 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:47 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:16 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:54 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:51:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:30 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:22 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:veos-config with connnection Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:veos-config on dut kg-topology-CloudEOSEdge1: [{'command': 'show file information flash:veos-config', 'result': {'isDir': False, 'path': 'flash:/veos-config', 'fileName': '/mnt/flash/veos-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:veos-config on dut kg-topology-CloudEOSEdge1: [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/veos-config: type is file INFO root:test_filesystem.py:80 WHEN flash:veos-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:veos-config| is : [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:zerotouch-config file present on |kg-topology-CloudEOSEdge1| INFO root:test_filesystem.py:71 GIVEN expected flash:zerotouch-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:zerotouch-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)), 'name': 'kg-topology-CloudEOSEdge1', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge1', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet2': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Vlan4093': {'lastStatusChangeTimestamp': 1597281918.5968578, 'name': 'Vlan4093', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vlan4094': {'lastStatusChangeTimestamp': 1597281695.724552, 'name': 'Vlan4094', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vxlan1': {'vniInDottedNotation': False, 'controllerClientMode': False, 'description': '', 'portDot1qVniMapping': False, 'mcastRouting': False, 'controllerControlPlane': False, 'srcIpIntf': 'Loopback0', 'vtepAddrMask': '255.255.255.255', 'hardware': 'vxlan', 'mcastGrpDecap': '', 'bandwidth': 0, 'use32BitVni': False, 'floodMcastGrp': '0.0.0.0', 'vlanToVniMap': {'4093': {'source': 'evpn', 'vni': 102}, '4094': {'source': 'evpn', 'vni': 101}}, 'vlanToVtepList': {}, 'arpReplyRelayMode': False, 'srcIpAddr': '11.201.0.1', 'dataPathLearningMode': False, 'interfaceAddress': [], 'vtepSourcePruningAll': False, 'mlagSharedRouterMacAddr': '00:00:00:00:00:00', 'staticFloodlists': False, 'vxlanEncapsulation': 'ipv4', 'name': 'Vxlan1', 'vccImportVlan': '4093-4094', 'replicationMode': 'headendNonVcs', 'vtepSetForSourcePruning': [], 'mtu': 0, 'interfaceStatus': 'connected', 'vtepToVtepBridging': False, 'l3MtuConfigured': False, 'vrfToVniMap': {'default': 101, 'prod': 102}, 'arpLocalAddress': False, 'vlanToLearnRestrict': {'4093': {'prefixList': [], 'learnFrom': 'learnFromAny'}, '4094': {'prefixList': [], 'learnFrom': 'learnFromAny'}}, 'lineProtocolStatus': 'up', 'forwardingModel': 'bridged'}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281540.2018194, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '02:9e:d2:0a:bb:fc', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463006.927123, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:9e:d2:0a:bb:fc', 'description': ''}, 'Ethernet2': {'lastStatusChangeTimestamp': 1597281538.1862884, 'lanes': 0, 'name': 'Ethernet2', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:3d:76:50:e3:16', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 40927.501816637945, 'inPktsRate': 35.037287576001525, 'outBitsRate': 27739.925604616627, 'updateInterval': 300.0, 'outPktsRate': 32.493524682358114}, 'mtu': 9000, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 142623412, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463006.928335, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 29335401047, 'outDiscards': 0, 'outOctets': 16839145488, 'inUcastPkts': 161292245, 'inTotalPkts': 161292245, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:3d:76:50:e3:16', 'description': ''}, 'Ethernet2.102': {'lastStatusChangeTimestamp': 1597281918.5901656, 'name': 'Ethernet2.102', 'interfaceStatus': 'connected', 'mtu': 9000, 'hardware': 'subinterface', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:3d:76:50:e3:16', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281538.239688, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '02:9e:d2:88:21:f6', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 43746.06999735788, 'inPktsRate': 41.80958255284627, 'outBitsRate': 92412.46728455611, 'updateInterval': 300.0, 'outPktsRate': 46.944238309923286}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 170050138, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463006.930405, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 16774522127, 'outDiscards': 0, 'outOctets': 36345827611, 'inUcastPkts': 142915339, 'inTotalPkts': 142915339, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.14.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '02:9e:d2:88:21:f6', 'description': ''}, 'Loopback0': {'lastStatusChangeTimestamp': 1597281693.6663582, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281523.1778927, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.35'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge1', 'hostname': 'kg-topology-CloudEOSEdge1'}, 'text': 'Hostname: kg-topology-CloudEOSEdge1\nFQDN: kg-topology-CloudEOSEdge1\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7818736, 'uptime': 3181553.48, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DB3968957436BF7623C810C9F13FC97E', 'systemMacAddress': '02:9e:d2:0a:bb:fc', 'bootupTimestamp': 1597281454.0, 'memFree': 2751172, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2751156 kB\n\n'}, 'show processes': {'json': {'processes': {'1928': {'totalActiveTime': 3254529, 'memPct': 3.7, 'cpuPct': 102.0, 'startTime': 1597281524.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '1116': {'totalActiveTime': 30, 'memPct': 0.9, 'cpuPct': 2.7, 'startTime': 1600461906.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1725': {'totalActiveTime': 14693, 'memPct': 2.3, 'cpuPct': 0.4, 'startTime': 1597281516.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1582': {'totalActiveTime': 6896, 'memPct': 8.6, 'cpuPct': 0.2, 'startTime': 1597281495.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1233': {'totalActiveTime': 6067, 'memPct': 0.9, 'cpuPct': 0.1, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '3405': {'totalActiveTime': 5774, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281695.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 306, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 30, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 49, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 90, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281454.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281455.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281461.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '380': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '407': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281463.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '499': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '747': {'totalActiveTime': 186, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281464.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '759': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '782': {'totalActiveTime': 65, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '789': {'totalActiveTime': 87, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '807': {'totalActiveTime': 16, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '819': {'totalActiveTime': 23, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '824': {'totalActiveTime': 5, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281465.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '1005': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1007': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1017': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1018': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1028': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461905.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '1034': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1038': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1039': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1064': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1179': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1180': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1213': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281472.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1216': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1218': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1232': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1478': {'totalActiveTime': 733, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1486': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1501': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1538': {'totalActiveTime': 158, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1539': {'totalActiveTime': 3090, 'memPct': 2.6, 'cpuPct': 0.0, 'startTime': 1597281492.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1581': {'totalActiveTime': 46, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1584': {'totalActiveTime': 141, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1585': {'totalActiveTime': 76, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281495.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 549, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1719': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1720': {'totalActiveTime': 240, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1722': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1724': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1726': {'totalActiveTime': 166, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281516.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1744': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1745': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1746': {'totalActiveTime': 318, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1747': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1750': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1751': {'totalActiveTime': 1132, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1754': {'totalActiveTime': 2194, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281517.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1767': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1768': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1769': {'totalActiveTime': 276, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1772': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1773': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1774': {'totalActiveTime': 224, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1775': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1777': {'totalActiveTime': 532, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1779': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 1816, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1781': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1783': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1784': {'totalActiveTime': 40, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281518.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1786': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1787': {'totalActiveTime': 2634, 'memPct': 1.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1789': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1790': {'totalActiveTime': 629, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1791': {'totalActiveTime': 94, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1793': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1794': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1795': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1796': {'totalActiveTime': 267, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1797': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1798': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 1538, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1800': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1802': {'totalActiveTime': 355, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281519.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1804': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 139, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1806': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1807': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1809': {'totalActiveTime': 250, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1811': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1813': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1815': {'totalActiveTime': 245, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1817': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1818': {'totalActiveTime': 345, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281520.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1821': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1822': {'totalActiveTime': 272, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1824': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1825': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1826': {'totalActiveTime': 209, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1827': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1828': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1831': {'totalActiveTime': 130, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1834': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1839': {'totalActiveTime': 71, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1841': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1842': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281521.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1844': {'totalActiveTime': 152, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1845': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1847': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1849': {'totalActiveTime': 38, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1853': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1854': {'totalActiveTime': 38, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1859': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 429, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1861': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281522.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1881': {'totalActiveTime': 279, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1883': {'totalActiveTime': 40, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1898': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 118, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1903': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1906': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1907': {'totalActiveTime': 584, 'memPct': 1.7, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1909': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1910': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1911': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1912': {'totalActiveTime': 146, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1914': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281523.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1915': {'totalActiveTime': 271, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1916': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1918': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1919': {'totalActiveTime': 122, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '1920': {'totalActiveTime': 1104, 'memPct': 2.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '1922': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '1926': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281524.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2295': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2356': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2360': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2363': {'totalActiveTime': 41, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2448': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462141.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2617': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2631': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2634': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2637': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2660': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2661': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2662': {'totalActiveTime': 597, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2671': {'totalActiveTime': 1, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2699': {'totalActiveTime': 62, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2739': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3281': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3289': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3290': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3295': {'totalActiveTime': 478, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3297': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3301': {'totalActiveTime': 245, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3304': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281693.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3307': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3308': {'totalActiveTime': 269, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281694.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3365': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3367': {'totalActiveTime': 68, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3403': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3404': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281695.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3929': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281918.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '4048': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281919.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '5105': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462501.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '6523': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462801.0, 'cmd': '[kworker/0:3]', 'state': 'S', 'ttyName': '?'}, '6625': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462861.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '7140': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600463007.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '7142': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600463007.0, 'cmd': '[ConfigAgent]', 'state': 'Rs', 'ttyName': '?'}, '8818': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1599873559.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '18981': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '18982': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '18983': {'totalActiveTime': 127, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457438.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '19027': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '19029': {'totalActiveTime': 124, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457439.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}, '30730': {'totalActiveTime': 934, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597697371.0, 'cmd': 'dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay', 'state': 'Sl', 'ttyName': '?'}, '30750': {'totalActiveTime': 769, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597697372.0, 'cmd': 'docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc', 'state': 'Ssl', 'ttyName': '?'}, '31909': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461421.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3181553.95, 'loadAvg': [1.82, 1.47, 1.39], 'users': 0, 'currentTime': 1600463008.246948}}, 'text': " 21:03:28 up 36 days, 19:45, 0 users, load average: 1.82, 1.47, 1.39\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 1928 102 3.7 ? Sl Aug 13 37-16:02:10 Sfe\n 1116 2.7 0.9 ? SNl 20:45:06 00:00:30 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1725 0.4 2.3 ? Sl Aug 13 04:04:54 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1582 0.2 8.6 ? Sl Aug 13 01:54:56 ConfigAgent\n 1233 0.1 0.9 ? S Aug 13 01:41:07 ProcMgr-worker\n 3405 0.1 1.4 ? S Aug 13 01:36:14 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:05:06 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:30 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:49 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:01:30 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 747 0.0 0.1 ? Ss Aug 13 00:03:06 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 782 0.0 0.0 ? Ss Aug 13 00:01:05 /usr/bin/ProcMonitor\n 789 0.0 0.0 ? Ss Aug 13 00:01:27 /usr/lib/systemd/systemd-logind\n 807 0.0 0.0 ? Ss Aug 13 00:00:16 /usr/sbin/crond -n\n 819 0.0 0.0 ? S<s Aug 13 00:00:23 /usr/bin/wdogdev -t 60\n 824 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1017 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1028 0.0 0.0 ? S 20:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1478 0.0 0.0 ? S Aug 13 00:12:13 /usr/bin/EosOomAdjust\n 1486 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu]\n 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1538 0.0 0.0 ? S Aug 13 00:02:38 /usr/bin/SlabMonitor\n 1539 0.0 2.6 ? S Aug 13 00:51:30 Sysdb\n 1581 0.0 1.2 ? S Aug 13 00:00:46 StageMgr\n 1584 0.0 1.4 ? S Aug 13 00:02:21 Fru\n 1585 0.0 1.8 ? S Aug 13 00:01:16 Launcher\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1718 0.0 1.2 ? S Aug 13 00:09:09 Lldp\n 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1720 0.0 1.2 ? S Aug 13 00:04:00 McastCommon\n 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1726 0.0 1.1 ? S Aug 13 00:02:46 PortSec\n 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1746 0.0 1.4 ? S Aug 13 00:05:18 Bfd\n 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1751 0.0 1.3 ? S Aug 13 00:18:52 Lag\n 1754 0.0 1.7 ? S Aug 13 00:36:34 SuperServer\n 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1769 0.0 1.5 ? S Aug 13 00:04:36 Ira\n 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1774 0.0 1.2 ? S Aug 13 00:03:44 LedPolicy\n 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1777 0.0 1.3 ? S Aug 13 00:08:52 EventMgr\n 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.2 ? S Aug 13 00:30:16 StpTxRx\n 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1784 0.0 1.1 ? S Aug 13 00:00:40 StandbyCpld\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1787 0.0 1.0 ? S Aug 13 00:43:54 AgentMonitor\n 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1790 0.0 1.6 ? Sl Aug 13 00:10:29 Aaa\n 1791 0.0 1.2 ? S Aug 13 00:01:34 Tunnel\n 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1796 0.0 1.2 ? S Aug 13 00:04:27 StpTopology\n 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1799 0.0 1.4 ? S Aug 13 00:25:38 Acl\n 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1802 0.0 1.1 ? S Aug 13 00:05:55 Stp\n 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.1 ? S Aug 13 00:02:19 KernelNetworkInfo\n 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1809 0.0 1.2 ? S Aug 13 00:04:10 McastCommon6\n 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1815 0.0 1.2 ? S Aug 13 00:04:05 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1818 0.0 1.5 ? S Aug 13 00:05:45 Arp\n 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1822 0.0 1.4 ? S Aug 13 00:04:32 KernelFib\n 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1826 0.0 1.2 ? S Aug 13 00:03:29 Qos\n 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1831 0.0 1.1 ? S Aug 13 00:02:10 Thermostat\n 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1839 0.0 1.2 ? S Aug 13 00:01:11 L2Rib\n 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1844 0.0 1.2 ? S Aug 13 00:02:32 TopoAgent\n 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1849 0.0 1.1 ? S Aug 13 00:00:38 PowerFuse\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1854 0.0 1.1 ? S Aug 13 00:00:38 PowerManager\n 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1860 0.0 1.4 ? S Aug 13 00:07:09 Ebra\n 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.1 ? S Aug 13 00:00:41 ReloadCauseAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1881 0.0 1.5 ? S Aug 13 00:04:39 IgmpSnooping\n 1883 0.0 1.1 ? S Aug 13 00:00:40 SharedSecretProfile\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.3 ? S Aug 13 00:01:58 StaticRoute\n 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1907 0.0 1.7 ? S Aug 13 00:09:44 IpRib\n 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1912 0.0 1.9 ? S Aug 13 00:02:26 BgpCliHelper\n 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1915 0.0 1.3 ? S Aug 13 00:04:31 ConnectedRoute\n 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1919 0.0 1.3 ? S Aug 13 00:02:02 RouteInput\n 1920 0.0 2.3 ? Sl Aug 13 00:18:24 Bgp\n 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2295 0.0 0.0 ? Ssl Aug 13 00:00:22 /usr/sbin/rsyslogd -n\n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2363 0.0 1.1 ? S Aug 13 00:00:41 LicenseManager\n 2448 0.0 0.0 ? S 20:49:01 00:00:00 [kworker/0:2]\n 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2637 0.0 0.0 ? S Aug 13 00:00:22 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console\n 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2662 0.0 1.2 ? S Aug 13 00:09:57 Ipsec\n 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2699 0.0 0.1 ? Ssl Aug 13 00:01:02 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3295 0.0 1.2 ? S Aug 13 00:07:58 Nat\n 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3301 0.0 1.3 ? S Aug 13 00:04:05 Vxlan\n 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3308 0.0 1.3 ? S Aug 13 00:04:29 VxlanSwFwd\n 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3367 0.0 0.1 ? Ssl Aug 13 00:01:08 /usr/libexec/strongswan/charon --use-syslog\n 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0]\n 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq\n 5105 0.0 0.0 ? S 20:55:01 00:00:00 [kworker/0:1]\n 6523 0.0 0.0 ? S 21:00:01 00:00:00 [kworker/0:3]\n 6625 0.0 0.0 ? S 21:01:01 00:00:00 [kworker/0:4]\n 7170 0.0 0.0 ? Rs 21:03:28 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n 7172 0.0 0.0 ? Rs 21:03:28 00:00:00 [ConfigAgent]\n 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1]\n18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n18983 0.0 1.3 ? Sl Aug 26 00:02:07 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n19029 0.0 0.1 ? S Aug 26 00:02:04 nginx: worker process \n30730 0.0 0.4 ? Sl Aug 17 00:15:34 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay\n30750 0.0 0.1 ? Ssl Aug 17 00:12:49 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc\n31909 0.0 0.0 ? S 20:37:01 00:00:00 [kworker/0:0]\n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet2': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 132765, 'authorizationAllowed': 2865, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 7, 'authenticationUnavailable': 389, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 132769\n Failed: 7\n Service unavailable: 389\n\nAuthorization\n Allowed: 2865\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'134577': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600462995, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n134577 kgrozis command-api E 0:00:15 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 35, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 35 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.123, 'jitter': 0.271, 'lastReceived': 1600461991.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': -0.059, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 1022 1024 377 0.123 -0.059 0.271\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281517.196137, 'pid': 1725, 'enabled': True, 'uptime': 3181497.0500000003, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1725)\nUptime: 36 days, 19:44:57 (Start time: Thu Aug 13 01:18:37 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291191296 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291191296 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 122355, 'bytesOut': 346726875, 'lastHitTime': 1600463015.749108, 'bytesIn': 19694161}}, 'bytesOut': 346726875, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 129220, 'vrf': 'default', 'lastHitTime': 1600463015.7490773, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 10447.116097904625, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 122355, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.14.101:443', 'Ethernet2 : https://11.201.14.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.1:443', 'Loopback10 : https://198.18.0.35:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 19694161, 'commandCount': 244710, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 129223\nLast hit: 0 seconds ago\nBytes in: 19694634\nBytes out: 346729107\nRequests: 122358\nCommands: 244716\nDuration: 10447.171 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 122358 19694634 346729107 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.14.101:443 \nEthernet2 : https://11.201.14.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.1:443 \nLoopback10 : https://198.18.0.35:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:27:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:50 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:40 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:47 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:16 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:54 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:51:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:30 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:22 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:27:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:50 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:40 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:47 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:16 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:54 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:51:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:30 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:22 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:zerotouch-config with connnection Node(connection=EapiConnection(transport=https://3.132.90.164:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:zerotouch-config on dut kg-topology-CloudEOSEdge1: [{'command': 'show file information flash:zerotouch-config', 'result': {'isDir': False, 'path': 'flash:/zerotouch-config', 'fileName': '/mnt/flash/zerotouch-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:zerotouch-config on dut kg-topology-CloudEOSEdge1: [{'output': 'flash:/zerotouch-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/zerotouch-config: type is file INFO root:test_filesystem.py:80 WHEN flash:zerotouch-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:zerotouch-config| is : [{'output': 'flash:/zerotouch-config:\n type is file\n'}] | ||||
| Passed | kg-topology-CloudEosRR2 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_associated_with_peers_on_[kg-topology-CloudEosRR2] | Verify ntp peers are correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| has |1| NTP peer associations -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_ntp_associated_with_peers_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show ntp associations| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show ntp associations| on kg-topology-CloudEosRR2 INFO root:test_ntp.py:104 TEST is NTP associations with peers on |kg-topology-CloudEosRR2| INFO root:test_ntp.py:105 GIVEN NTP associated are greater than or equal to |1| INFO root:test_ntp.py:112 WHEN NTP associated peers fare |1| INFO root:test_ntp.py:115 THEN test case result is |True| INFO root:test_ntp.py:116 OUTPUT of |show ntp associations| is : remote refid st t when poll reach delay offset jitter ============================================================================== *169.254.169.123 169.254.169.12 3 l 464 1024 377 0.118 -0.271 0.656 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_installed_on_[kg-topology-CloudEOSEdge1] | Verify a list of extension are installed on a DUT | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| awslogs.swix extension is |installed| On router |kg-topology-CloudEOSEdge1| awsha.rpm extension is |installed| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_extensions_are_installed_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show extensions| on kg-topology-CloudEOSEdge1 INFO root:test_extension.py:73 TEST is awslogs.swix extension installed on |kg-topology-CloudEOSEdge1| INFO root:test_extension.py:75 GIVEN expected awslogs.swix extension status: |installed| INFO root:test_extension.py:83 WHEN awslogs.swix extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:73 TEST is awsha.rpm extension installed on |kg-topology-CloudEOSEdge1| INFO root:test_extension.py:75 GIVEN expected awsha.rpm extension status: |installed| INFO root:test_extension.py:83 WHEN awsha.rpm extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/api/test_api.py::APITests::test_if_management_local_http_api_server_is_running_on_[kg-topology-CloudEOSEdge1] | Verify management api local httpserver is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| Local HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_local_http_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:215 TEST is local HTTP API running on |kg-topology-CloudEOSEdge1| INFO root:test_api.py:216 GIVEN local HTTP API state is |False| INFO root:tests_tools.py:372 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge1 INFO root:test_api.py:226 WHEN HTTP API state is |False| INFO root:test_api.py:229 THEN test case result is |True| INFO root:test_api.py:230 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 129224 Last hit: 0 seconds ago Bytes in: 19694799 Bytes out: 346730371 Requests: 122359 Commands: 244718 Duration: 10447.204 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 122359 19694799 346730371 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.14.101:443 Ethernet2 : https://11.201.14.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.1:443 Loopback10 : https://198.18.0.35:443 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/host/test_host.py::HostTests::test_if_hostname_is_correcet_on_[kg-topology-CloudEOSEdge1] | Verify hostname is set on device is correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| the configured hostname is |kg-topology-CloudEOSEdge1| and the correct hostname is |kg-topology-CloudEOSEdge1| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_host.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_hostname_is_correcet_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show hostname| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show hostname| on kg-topology-CloudEOSEdge1 INFO root:test_host.py:72 TEST is hostname kg-topology-CloudEOSEdge1 correct INFO root:test_host.py:73 GIVEN hostname kg-topology-CloudEOSEdge1 INFO root:test_host.py:74 WHEN hostname is kg-topology-CloudEOSEdge1 INFO root:test_host.py:81 THEN test case result is |False| INFO root:test_host.py:82 OUTPUT of |show hostname| is : Hostname: kg-topology-CloudEOSEdge1 FQDN: kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEosRR2 | tests/ntp/test_ntp.py::NTPTests::test_if_process_is_running_on_[kg-topology-CloudEosRR2] | Verify ntp processes are running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEosRR2| has |1| process for ntpd -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_process_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show processes| was successfully executed on kg-topology-CloudEosRR2 dut INFO root:tests_tools.py:376 Verified output for show command |show processes| on kg-topology-CloudEosRR2 INFO root:test_ntp.py:148 TEST is ntpd running on |kg-topology-CloudEosRR2| INFO root:test_ntp.py:149 GIVEN ntpd state is |1| INFO root:test_ntp.py:155 WHEN ntpd number is |1| INFO root:test_ntp.py:158 THEN test case result is |True| INFO root:test_ntp.py:159 OUTPUT of |show processes| is : 21:03:28 up 36 days, 19:45, 0 users, load average: 1.27, 1.36, 1.32 PID %CPU %MEM TT STAT STARTED TIME CMD 2009 102 3.4 ? Sl Aug 13 37-16:37:03 Sfe 20891 1.7 0.9 ? SNl 20:45:06 00:00:18 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1714 0.4 1.9 ? Sl Aug 13 03:34:47 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.13.101 -taillogs -grpcaddr=0.0.0.0:6042 1255 0.1 0.9 ? S Aug 13 01:40:27 ProcMgr-worker 1566 0.1 7.3 ? Sl Aug 13 01:44:33 ConfigAgent 1 0.0 0.0 ? Ss Aug 13 00:05:09 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:28 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 6 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 7 0.0 0.0 ? S Aug 13 00:00:50 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:04 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:27 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 346 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:2] 384 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 413 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 732 0.0 0.0 ? Ss Aug 13 00:01:30 /usr/lib/systemd/systemd-logind 734 0.0 0.0 ? Ss Aug 13 00:01:01 /usr/bin/ProcMonitor 742 0.0 0.1 ? Ss Aug 13 00:03:07 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 762 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 777 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 797 0.0 0.0 ? Ss Aug 13 00:00:17 /usr/sbin/crond -n 812 0.0 0.0 ? S<s Aug 13 00:00:24 /usr/bin/wdogdev -t 60 823 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 951 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 953 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 979 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 981 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 990 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 991 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1043 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1048 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1163 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1164 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1197 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1238 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1240 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1254 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1462 0.0 0.0 ? S Aug 13 00:11:45 /usr/bin/EosOomAdjust 1470 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu] 1485 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1522 0.0 0.0 ? S Aug 13 00:02:45 /usr/bin/SlabMonitor 1523 0.0 2.5 ? S Aug 13 00:39:11 Sysdb 1565 0.0 1.2 ? S Aug 13 00:00:47 StageMgr 1570 0.0 1.4 ? S Aug 13 00:01:54 Fru 1571 0.0 1.8 ? S Aug 13 00:00:42 Launcher 1694 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=275501144304,275500693129,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1695 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1696 0.0 1.2 ? S Aug 13 00:10:00 Lldp 1699 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=275605242171,275551678101,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1700 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1702 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1704 0.0 1.2 ? S Aug 13 00:03:54 McastCommon 1708 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=275773786218,275650165758,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1711 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1712 0.0 1.1 ? S Aug 13 00:02:20 PortSec 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=279574021921,279385129478,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1722 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1723 0.0 1.4 ? S Aug 13 00:04:39 Bfd 1724 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=280109105290,280107199461,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1727 0.0 1.3 ? S Aug 13 00:18:28 Lag 1729 0.0 1.7 ? S Aug 13 00:37:20 SuperServer 1732 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=283892362299,283880109624,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1733 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1734 0.0 1.5 ? S Aug 13 00:04:02 Ira 1736 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=288108381572,287775061276,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1737 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1738 0.0 1.1 ? S Aug 13 00:03:08 LedPolicy 1739 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=288299247450,288179510165,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1740 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1741 0.0 1.3 ? S Aug 13 00:08:08 EventMgr 1743 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=288579662140,288395482866,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1744 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1745 0.0 1.2 ? S Aug 13 00:28:22 StpTxRx 1746 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=292115254711,288676120489,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1747 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1749 0.0 1.1 ? S Aug 13 00:00:42 StandbyCpld 1750 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=292267583010,292186647304,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1751 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1753 0.0 1.0 ? S Aug 13 00:42:26 AgentMonitor 1754 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=292421762940,292330626218,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1755 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1756 0.0 1.2 ? S Aug 13 00:01:35 Tunnel 1757 0.0 1.5 ? Sl Aug 13 00:10:35 Aaa 1759 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=292808046113,292716319651,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1760 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1761 0.0 1.2 ? S Aug 13 00:03:43 StpTopology 1762 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=296523011761,292995169616,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1763 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1764 0.0 1.4 ? S Aug 13 00:21:02 Acl 1771 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=297041265896,296648985313,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.1 ? S Aug 13 00:05:10 Stp 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=297164816515,297132428879,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1780 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1782 0.0 1.1 ? S Aug 13 00:02:23 KernelNetworkInfo 1786 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=300924273292,300805414611,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1793 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1800 0.0 1.2 ? S Aug 13 00:03:17 McastCommon6 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=301369414784,301079967103,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1810 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1813 0.0 1.2 ? S Aug 13 00:03:35 LacpTxAgent 1825 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=305150183208,301517231056,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1827 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1830 0.0 1.5 ? S Aug 13 00:04:55 Arp 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=305766616581,305331306787,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1849 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1850 0.0 1.4 ? S Aug 13 00:03:45 KernelFib 1855 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=305914666962,305891078210,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1863 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=310155317299,310146122555,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1866 0.0 1.2 ? S Aug 13 00:02:53 Qos 1869 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1872 0.0 1.1 ? S Aug 13 00:02:22 Thermostat 1876 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=313651175211,310235138896,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1880 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1883 0.0 1.2 ? S Aug 13 00:01:15 L2Rib 1885 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=313910588628,313716056362,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1886 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1887 0.0 1.2 ? S Aug 13 00:01:52 TopoAgent 1889 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=314257465954,313997347978,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1890 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1892 0.0 1.0 ? S Aug 13 00:00:40 PowerFuse 1893 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=314448379045,314392881768,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1894 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1895 0.0 1.1 ? S Aug 13 00:00:41 PowerManager 1896 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=318077978536,317883825927,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1900 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1905 0.0 1.4 ? S Aug 13 00:07:05 Ebra 1913 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=318598602805,318228924536,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1916 0.0 1.1 ? S Aug 13 00:00:41 ReloadCauseAgent 1918 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=318762514420,318696297345,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1920 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1922 0.0 1.0 ? S Aug 13 00:00:41 SharedSecretProfile 1923 0.0 1.5 ? S Aug 13 00:03:51 IgmpSnooping 1933 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=322651195162,322650789524,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1934 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1935 0.0 1.3 ? S Aug 13 00:02:22 StaticRoute 1937 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=322914040580,322748011657,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1938 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1940 0.0 1.6 ? S Aug 13 00:08:36 IpRib 1943 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=326588334299,323000468604,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1944 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1945 0.0 1.8 ? S Aug 13 00:02:27 BgpCliHelper 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=326677503453,326675454310,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1953 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1957 0.0 1.3 ? S Aug 13 00:04:08 ConnectedRoute 1964 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=327312488625,326986790248,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1965 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1966 0.0 1.3 ? S Aug 13 00:02:25 RouteInput 1974 0.0 2.2 ? Sl Aug 13 00:11:54 Bgp 2002 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=331509489560,331172745644,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2008 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2286 0.0 0.0 ? Ssl Aug 13 00:00:36 /usr/sbin/rsyslogd -n 2340 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 2602 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=378753852405,378753400392,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2603 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2605 0.0 1.1 ? S Aug 13 00:00:43 LicenseManager 2656 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2657 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2658 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2664 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2667 0.0 0.0 ? S Aug 13 00:00:23 /usr/bin/tail -n 0 --retry --follow=name --pid=2656 /var/log/eos-console 2668 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2707 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=399762211162,399761786247,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2736 0.0 1.2 ? S Aug 13 00:10:25 Ipsec 2739 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2766 0.0 0.1 ? Ssl Aug 13 00:01:05 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2770 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3341 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3343 0.0 0.1 ? Ssl Aug 13 00:01:46 /usr/libexec/strongswan/charon --use-syslog 18367 0.0 0.0 ? S Aug 14 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=665682214635995,665682214376331,tbl://sysdb/+n,Sysdb (pid:1523) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18368 0.0 0.3 ? Ss Aug 14 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18369 0.0 1.3 ? Sl Aug 14 00:02:37 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18413 0.0 0.0 ? Ss Aug 14 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 18415 0.0 0.1 ? S Aug 14 00:02:15 nginx: worker process 20284 0.0 0.0 ? S 20:40:01 00:00:00 [kworker/0:3] 20844 0.0 0.0 ? S 20:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 20882 0.0 0.0 ? S 20:45:05 00:00:00 [kworker/0:1] 23316 0.0 0.0 ? S 20:51:01 00:00:00 [kworker/0:2] 24800 0.0 0.0 ? S 20:57:00 00:00:00 [kworker/0:0] 26215 0.0 0.0 ? S 21:01:00 00:00:00 [kworker/0:4] 26732 0.0 0.0 ? Rs 21:03:27 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_erroring_on_[kg-topology-CloudEOSEdge1] | Verify a list of extension are not erroring on a DUT | 0.02 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| awslogs.swix extension error is |False| On router |kg-topology-CloudEOSEdge1| awsha.rpm extension error is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_extensions_are_erroring_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show extensions| on kg-topology-CloudEOSEdge1 INFO root:test_extension.py:117 TEST is awslogs.swix extension not erroring on |kg-topology-CloudEOSEdge1| INFO root:test_extension.py:119 GIVEN expected awslogs.swix extension status: |False| INFO root:test_extension.py:128 WHEN awslogs.swix extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:117 TEST is awsha.rpm extension not erroring on |kg-topology-CloudEOSEdge1| INFO root:test_extension.py:119 GIVEN expected awsha.rpm extension status: |False| INFO root:test_extension.py:128 WHEN awsha.rpm extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/cpu/test_cpu.py::CPUTests::test_1_sec_cpu_utlization_on_[kg-topology-CloudEOSEdge1] | Verify 1 second CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| 1 second CPU load average is |1.82%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_1_sec_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show processes| on kg-topology-CloudEOSEdge1 INFO root:test_cpu.py:70 TEST if 1 second CPU utilization is less than specified value on |kg-topology-CloudEOSEdge1| INFO root:test_cpu.py:72 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:76 WHEN CPU utilization is |1.82| INFO root:test_cpu.py:79 THEN test case result is |True| INFO root:test_cpu.py:80 OUTPUT of |show processes| is : 21:03:28 up 36 days, 19:45, 0 users, load average: 1.82, 1.47, 1.39 PID %CPU %MEM TT STAT STARTED TIME CMD 1928 102 3.7 ? Sl Aug 13 37-16:02:10 Sfe 1116 2.7 0.9 ? SNl 20:45:06 00:00:30 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1725 0.4 2.3 ? Sl Aug 13 04:04:54 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042 1582 0.2 8.6 ? Sl Aug 13 01:54:56 ConfigAgent 1233 0.1 0.9 ? S Aug 13 01:41:07 ProcMgr-worker 3405 0.1 1.4 ? S Aug 13 01:36:14 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:05:06 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:30 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:49 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:30 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 747 0.0 0.1 ? Ss Aug 13 00:03:06 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 782 0.0 0.0 ? Ss Aug 13 00:01:05 /usr/bin/ProcMonitor 789 0.0 0.0 ? Ss Aug 13 00:01:27 /usr/lib/systemd/systemd-logind 807 0.0 0.0 ? Ss Aug 13 00:00:16 /usr/sbin/crond -n 819 0.0 0.0 ? S<s Aug 13 00:00:23 /usr/bin/wdogdev -t 60 824 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1017 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1028 0.0 0.0 ? S 20:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1478 0.0 0.0 ? S Aug 13 00:12:13 /usr/bin/EosOomAdjust 1486 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu] 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1538 0.0 0.0 ? S Aug 13 00:02:38 /usr/bin/SlabMonitor 1539 0.0 2.6 ? S Aug 13 00:51:30 Sysdb 1581 0.0 1.2 ? S Aug 13 00:00:46 StageMgr 1584 0.0 1.4 ? S Aug 13 00:02:21 Fru 1585 0.0 1.8 ? S Aug 13 00:01:16 Launcher 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1718 0.0 1.2 ? S Aug 13 00:09:09 Lldp 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1720 0.0 1.2 ? S Aug 13 00:04:00 McastCommon 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1726 0.0 1.1 ? S Aug 13 00:02:46 PortSec 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1746 0.0 1.4 ? S Aug 13 00:05:18 Bfd 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.3 ? S Aug 13 00:18:52 Lag 1754 0.0 1.7 ? S Aug 13 00:36:34 SuperServer 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1769 0.0 1.5 ? S Aug 13 00:04:36 Ira 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.2 ? S Aug 13 00:03:44 LedPolicy 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1777 0.0 1.3 ? S Aug 13 00:08:52 EventMgr 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.2 ? S Aug 13 00:30:16 StpTxRx 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1784 0.0 1.1 ? S Aug 13 00:00:40 StandbyCpld 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1787 0.0 1.0 ? S Aug 13 00:43:54 AgentMonitor 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1790 0.0 1.6 ? Sl Aug 13 00:10:29 Aaa 1791 0.0 1.2 ? S Aug 13 00:01:34 Tunnel 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1796 0.0 1.2 ? S Aug 13 00:04:27 StpTopology 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1799 0.0 1.4 ? S Aug 13 00:25:38 Acl 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1802 0.0 1.1 ? S Aug 13 00:05:55 Stp 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.1 ? S Aug 13 00:02:19 KernelNetworkInfo 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1809 0.0 1.2 ? S Aug 13 00:04:10 McastCommon6 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1815 0.0 1.2 ? S Aug 13 00:04:05 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1818 0.0 1.5 ? S Aug 13 00:05:45 Arp 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.4 ? S Aug 13 00:04:32 KernelFib 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1826 0.0 1.2 ? S Aug 13 00:03:29 Qos 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1831 0.0 1.1 ? S Aug 13 00:02:10 Thermostat 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1839 0.0 1.2 ? S Aug 13 00:01:11 L2Rib 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1844 0.0 1.2 ? S Aug 13 00:02:32 TopoAgent 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1849 0.0 1.1 ? S Aug 13 00:00:38 PowerFuse 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1854 0.0 1.1 ? S Aug 13 00:00:38 PowerManager 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1860 0.0 1.4 ? S Aug 13 00:07:09 Ebra 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.1 ? S Aug 13 00:00:41 ReloadCauseAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1881 0.0 1.5 ? S Aug 13 00:04:39 IgmpSnooping 1883 0.0 1.1 ? S Aug 13 00:00:40 SharedSecretProfile 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.3 ? S Aug 13 00:01:58 StaticRoute 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1907 0.0 1.7 ? S Aug 13 00:09:44 IpRib 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1912 0.0 1.9 ? S Aug 13 00:02:26 BgpCliHelper 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1915 0.0 1.3 ? S Aug 13 00:04:31 ConnectedRoute 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1919 0.0 1.3 ? S Aug 13 00:02:02 RouteInput 1920 0.0 2.3 ? Sl Aug 13 00:18:24 Bgp 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2295 0.0 0.0 ? Ssl Aug 13 00:00:22 /usr/sbin/rsyslogd -n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2363 0.0 1.1 ? S Aug 13 00:00:41 LicenseManager 2448 0.0 0.0 ? S 20:49:01 00:00:00 [kworker/0:2] 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2637 0.0 0.0 ? S Aug 13 00:00:22 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2662 0.0 1.2 ? S Aug 13 00:09:57 Ipsec 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2699 0.0 0.1 ? Ssl Aug 13 00:01:02 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3295 0.0 1.2 ? S Aug 13 00:07:58 Nat 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3301 0.0 1.3 ? S Aug 13 00:04:05 Vxlan 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3308 0.0 1.3 ? S Aug 13 00:04:29 VxlanSwFwd 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3367 0.0 0.1 ? Ssl Aug 13 00:01:08 /usr/libexec/strongswan/charon --use-syslog 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 5105 0.0 0.0 ? S 20:55:01 00:00:00 [kworker/0:1] 6523 0.0 0.0 ? S 21:00:01 00:00:00 [kworker/0:3] 6625 0.0 0.0 ? S 21:01:01 00:00:00 [kworker/0:4] 7167 0.0 0.0 ? Rs 21:03:28 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1] 18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18983 0.0 1.3 ? Sl Aug 26 00:02:07 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 19029 0.0 0.1 ? S Aug 26 00:02:04 nginx: worker process 30730 0.0 0.4 ? Sl Aug 17 00:15:34 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay 30750 0.0 0.1 ? Ssl Aug 17 00:12:49 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc 31909 0.0 0.0 ? S 20:37:01 00:00:00 [kworker/0:0] | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_receiving_messages_on_[kg-topology-CloudEOSEdge1] | Verify tacacs messages are received correctly | 0.00 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_tacacs_is_receiving_messages_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show tacacs| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:396 Verify if tacacs server(s) are configured on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:402 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:136 TEST is |kg-topology-CloudEOSEdge1| receiving messages to TACACS server | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_protocol_status_is_connected_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest protocol statuses are up | 0.55 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up| TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|. GIVEN interface status is |up|. WHEN interface status is |up|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 - On interface |Ethernet2|: interface link line protocol status is set to: |up|, correct state is |up| TEST if interface |Ethernet2| link prootocol statuses on |kg-topology-CloudEOSEdge1|. GIVEN interface status is |up|. WHEN interface status is |up|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:372 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces status| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_protocol_status_is_connected_on_ exists in results file at index 8 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_protocol_status_is_connected_on_ with parameters {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'actual_output': 'up', 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_protocol_status_is_connected_on_ exists in results file at index 8 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/users/test_users.py::UsersTests::test_if_usernames_are_configured_on_[kg-topology-CloudEOSEdge1] | Verify username is set correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| |ec2-user| username is |configured| On router |kg-topology-CloudEOSEdge1| |kgrozis| username is |configured| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_users.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_usernames_are_configured_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show running-config section username| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show running-config section username| on kg-topology-CloudEOSEdge1 INFO root:test_users.py:74 TEST is ec2-user username configured |kg-topology-CloudEOSEdge1| INFO root:test_users.py:76 GIVEN ec2-user username configured status: |True| INFO root:test_users.py:82 WHEN ec2-user username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. INFO root:test_users.py:74 TEST is kgrozis username configured |kg-topology-CloudEOSEdge1| INFO root:test_users.py:76 GIVEN kgrozis username configured status: |True| INFO root:test_users.py:82 WHEN kgrozis username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/ztp/test_ztp.py::ZTPTests::test_if_zerotouch_is_disabled_on_[kg-topology-CloudEOSEdge1] | Verify ztp is disabled | 0.00 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| ZTP process is in mode: |disabled| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_zerotouch_is_disabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show zerotouch| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show zerotouch| on kg-topology-CloudEOSEdge1 INFO root:test_ztp.py:71 TEST is ZTP disabled on |kg-topology-CloudEOSEdge1| INFO root:test_ztp.py:72 GIVEN ZTP state is |disabled| INFO root:test_ztp.py:78 WHEN ZTP state is |disabled| INFO root:test_ztp.py:81 THEN test case result is |True| INFO root:test_ztp.py:82 OUTPUT of |show zerotouch| is : ZeroTouch Mode: Disabled Script Exec Timeout: 900 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/lldp/test_lldp.py::LldpTests::test_if_lldp_rx_is_enabled_on_[kg-topology-CloudEOSEdge1] | Verify LLDP receive is enabled on interesting interfaces | 0.80 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True| TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|. GIVEN LLDP receive state is |True|. WHEN LLDP receive state is |True|. THEN test case result is |True|. OUTPUT of |show lldp| is: LLDP transmit interval : 30 seconds LLDP transmit holdtime : 120 seconds LLDP reinitialization delay : 2 seconds LLDP Management Address VRF : default Enabled optional TLVs: Port Description System Name System Description System Capabilities Management Address (best) IEEE802.1 Port VLAN ID IEEE802.3 Link Aggregation IEEE802.3 Maximum Frame Size IEEE802.3 Power Via MDI LLDP-MED Capabilities LLDP-MED Network Policy Port Tx Enabled Rx Enabled ----------- ---------------- ---------- Et1 Yes Yes Et2 Yes Yes Et100 Yes Yes - On interface |Ethernet2|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True| TEST if interface |Ethernet2| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|. GIVEN LLDP receive state is |True|. WHEN LLDP receive state is |True|. THEN test case result is |True|. OUTPUT of |show lldp| is: LLDP transmit interval : 30 seconds LLDP transmit holdtime : 120 seconds LLDP reinitialization delay : 2 seconds LLDP Management Address VRF : default Enabled optional TLVs: Port Description System Name System Description System Capabilities Management Address (best) IEEE802.1 Port VLAN ID IEEE802.3 Link Aggregation IEEE802.3 Maximum Frame Size IEEE802.3 Power Via MDI LLDP-MED Capabilities LLDP-MED Network Policy Port Tx Enabled Rx Enabled ----------- ---------------- ---------- Et1 Yes Yes Et2 Yes Yes Et100 Yes Yes -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_lldp_rx_is_enabled_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_lldp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_lldp_rx_is_enabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'} INFO root:tests_tools.py:372 Verify if show command |show lldp| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show lldp| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:520 Find the Index for test suite: test_lldp.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_lldp.py exists in results file at index 1 INFO root:tests_tools.py:535 Find Index for test case: test_if_lldp_rx_is_enabled_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_lldp_rx_is_enabled_on_ exists in results file at index 0 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_lldp_rx_is_enabled_on_ with parameters {'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp', 'test_suite': 'test_lldp.py', 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'actual_output': True, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_lldp.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_lldp.py exists in results file at index 1 INFO root:tests_tools.py:535 Find Index for test case: test_if_lldp_rx_is_enabled_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_lldp_rx_is_enabled_on_ exists in results file at index 0 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/ztp/test_ztp.py::ZTPTests::test_for_zerotouch_config_file_on_[kg-topology-CloudEOSEdge1] | Verify zerotoucn-config file is on flash | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| ZTP configuration file is on flash: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_for_zerotouch_config_file_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |dir flash:zerotouch-config| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |dir flash:zerotouch-config| on kg-topology-CloudEOSEdge1 INFO root:test_ztp.py:106 TEST is ZTP configuration file is on |kg-topology-CloudEOSEdge1| INFO root:test_ztp.py:107 GIVEN ZTP configuration file is |True| INFO root:test_ztp.py:113 WHEN ZTP configuration file is |True| INFO root:test_ztp.py:116 THEN test case result is |True| INFO root:test_ztp.py:117 OUTPUT of |dir flash:zerotouch-config| is : Directory of flash:/zerotouch-config -rw- 13 Mar 30 23:38 zerotouch-config 8319852544 bytes total (7291191296 bytes free) | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/test_pytest.py::PyTestTests::test_assert_true[kg-topology-CloudEOSEdge2] | Prior to running any tests this test Validates that PyTest is working correct by verifying PyTest can assert True. | 0.00 |
|
-------------------------------Captured log call-------------------------------- INFO root:test_pytest.py:48 Prior to running any tests this test Validates thatPyTest is working correct by verifying PyTest can assert True. | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/logging/test_logging.py::LoggingTests::test_if_log_messages_appear_on_[kg-topology-CloudEOSEdge1] | Verify local log messages | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| message |critical| NOT found in local log On router |kg-topology-CloudEOSEdge1| message |warning| NOT found in local log On router |kg-topology-CloudEOSEdge1| message |ECC| NOT found in local log On router |kg-topology-CloudEOSEdge1| message |servers errors| NOT found in local log On router |kg-topology-CloudEOSEdge1| message |parity| NOT found in local log -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_logging.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_log_messages_appear_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show logging| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show logging| on kg-topology-CloudEOSEdge1 INFO root:test_logging.py:74 TEST for local log message critical on |kg-topology-CloudEOSEdge1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 20:27:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:27:50 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:27:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:30:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:31:40 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:47 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:36:48 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:16 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:37:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:54 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:51:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:53:47 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:54:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:30 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:57:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:22 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:58:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 21:03:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message warning on |kg-topology-CloudEOSEdge1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 20:27:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:27:50 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:27:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:30:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:31:40 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:47 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:36:48 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:16 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:37:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:54 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:51:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:53:47 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:54:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:30 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:57:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:22 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:58:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 21:03:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message ECC on |kg-topology-CloudEOSEdge1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 20:27:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:27:50 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:27:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:30:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:31:40 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:47 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:36:48 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:16 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:37:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:54 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:51:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:53:47 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:54:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:30 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:57:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:22 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:58:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 21:03:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message servers errors on |kg-topology-CloudEOSEdge1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 20:27:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:27:50 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:27:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:30:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:31:40 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:47 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:36:48 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:16 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:37:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:54 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:51:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:53:47 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:54:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:30 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:57:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:22 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:58:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 21:03:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message parity on |kg-topology-CloudEOSEdge1| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 20:27:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:27:50 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:27:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:30:59 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:31:40 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:46 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:47 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:36:48 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:16 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:37:28 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:35 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:01 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:27 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:39 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:17 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:43 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:54 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:51:02 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:53:47 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:13 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:54:24 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:30 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:57:56 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:22 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:58:37 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:45 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 21:03:15 kg-topology-CloudEOSEdge1 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_link_status_is_connected_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest link statuses are up | 0.67 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface link line protocol status is set to: |connected|, correct state is |connected| - On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected| TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|. GIVEN interface status is |connected|. WHEN interface status is |connected|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 - On interface |Ethernet2|: interface link line protocol status is set to: |connected|, correct state is |connected| - On interface |Ethernet2|: interface link status is set to: |connected|, correct state is |connected| TEST if interface |Ethernet2| link status on |kg-topology-CloudEOSEdge1|. GIVEN interface status is |connected|. WHEN interface status is |connected|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:372 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces status| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_link_status_is_connected_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_link_status_is_connected_on_ exists in results file at index 0 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_link_status_is_connected_on_ with parameters {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'actual_output': 'connected', 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_link_status_is_connected_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_link_status_is_connected_on_ exists in results file at index 0 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_aaa_session_logging_is_working_on_[kg-topology-CloudEOSEdge2] | Verify AAA session logging is working by identifying eapi connection | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| identified eAPi AAA session: |commandApi| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_aaa_session_logging_is_working_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show users detail| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show users detail| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:130 TEST is |kg-topology-CloudEOSEdge2| AAA session logging is working by identifying eapi connection INFO root:test_aaa.py:138 GIVEN commandApi is nonInteractive sessions INFO root:test_aaa.py:139 WHEN commandApi is nonInteractive sessions INFO root:test_aaa.py:154 THEN test case result is |True| INFO root:test_aaa.py:155 OUTPUT of |show users detail| is : Session Username Roles TTY State Duration Auth Remote Host -------- --------- ------- ------------- ------- ---------- ------- ----------- 134244 kgrozis command-api E 0:00:15 local | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_commands_authorization_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA command authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA authorization methods for fcommands: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_commands_authorization_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:184 TEST is command authorization methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:186 GIVEN command authorization method list: |['none']| INFO root:test_aaa.py:190 WHEN EOS command authorization method list is set to |['none']| INFO root:test_aaa.py:194 THEN test case result is |True| INFO root:test_aaa.py:195 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_fcs_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no fcsErrors errors | 2.00 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0| TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|. GIVEN interface fcsErrors errors is |0|. WHEN interface fcsErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| fcsErrors, correct state is |0| TEST if interface |Ethernet2| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|. GIVEN interface fcsErrors errors is |0|. WHEN interface fcsErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_fcs_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_fcs_errors_on_ exists in results file at index 5 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_fcs_errors_on_ with parameters {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_fcs_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_fcs_errors_on_ exists in results file at index 5 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_exec_authorization_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA exec authorization are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA authorization methods for exec: |['none']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_exec_authorization_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:227 TEST is exec authorization methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:229 GIVEN exec authorization method list: |['none']| INFO root:test_aaa.py:233 WHEN EOS exec authorization method list is set to |['none']| INFO root:test_aaa.py:237 THEN test case result is |True| INFO root:test_aaa.py:238 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/memory/test_memory.py::MemoryTests::test_memory_utilization_on_[kg-topology-CloudEOSEdge1] | Verify memory is not exceeding high utlization | 0.74 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ - On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%| TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|. GIVEN memory utilization is less than |70|. WHEN memory utilization is |35.177399518285306|. THEN test case result is |True|. OUTPUT of |show version| is: Arista vEOS Hardware version: Serial number: DB3968957436BF7623C810C9F13FC97E System MAC address: 029e.d20a.bbfc Software image version: 4.23.1F-cloud-16179785.jakartarel (engineering build) Architecture: x86_64 Internal build version: 4.23.1F-cloud-16179785.jakartarel Internal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809 Uptime: 5 weeks, 1 days, 19 hours and 45 minutes Total memory: 7818736 kB Free memory: 2740844 kB -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_memory_utilization_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_memory.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_memory_utilization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show version| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show version| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:520 Find the Index for test suite: test_memory.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_memory.py exists in results file at index 2 INFO root:tests_tools.py:535 Find Index for test case: test_memory_utilization_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_memory_utilization_on_ exists in results file at index 0 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge1 to test case test_memory_utilization_on_ with parameters {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'result': True, 'test_suite': 'test_memory.py', 'test_result': True, 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'actual_output': 35.177399518285306, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_default_login_authentication_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA default login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA authentication methods for default login: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_default_login_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:270 TEST is default login authentication methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:272 GIVEN login authentication method list: |['local']| INFO root:test_aaa.py:276 WHEN EOS login authentication method list is set to |['local']| INFO root:test_aaa.py:280 THEN test case result is |True| INFO root:test_aaa.py:281 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfacePhyTests::test_if_intf_phy_status_connected_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest physical state is link up | 0.87 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ kg-topology-CloudEOSEdge1 is a VEOS instance so test NOT valid -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'} INFO root:tests_tools.py:372 Verify if show command |show interfaces phy detail| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces phy detail| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:419 Verify if kg-topology-CloudEOSEdge1 DUT is a VEOS instance INFO root:tests_tools.py:423 kg-topology-CloudEOSEdge1 is a VEOS instance so returning True INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_phy_status_connected_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_phy_status_connected_on_ exists in results file at index 4 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_phy_status_connected_on_ with parameters {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail', 'test_suite': 'test_interface.py', 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'test_result': True, 'output_msg': None, 'actual_output': None, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_is_synchronized_on_[kg-topology-CloudEOSEdge1] | Verify ntp is synchronzied | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| NTP synchronized status is: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_ntp_is_synchronized_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show ntp status| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show ntp status| on kg-topology-CloudEOSEdge1 INFO root:test_ntp.py:70 TEST is NTP synchronized on |kg-topology-CloudEOSEdge1| INFO root:test_ntp.py:71 GIVEN NTP synchronized is |True| INFO root:test_ntp.py:77 WHEN NTP configuration file is |True| INFO root:test_ntp.py:80 THEN test case result is |True| INFO root:test_ntp.py:81 OUTPUT of |show ntp status| is : synchronised to NTP server (169.254.169.123) at stratum 4 time correct to within 35 ms polling server every 1024 s | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_login_authentication_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA login authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_login_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:313 TEST is login authentication methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:315 GIVEN login authentication method list: |None| INFO root:test_aaa.py:332 WHEN EOS login authentication method list is set to |None| INFO root:test_aaa.py:334 THEN test case result is |True| INFO root:test_aaa.py:335 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_associated_with_peers_on_[kg-topology-CloudEOSEdge1] | Verify ntp peers are correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| has |1| NTP peer associations -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_ntp_associated_with_peers_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show ntp associations| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show ntp associations| on kg-topology-CloudEOSEdge1 INFO root:test_ntp.py:104 TEST is NTP associations with peers on |kg-topology-CloudEOSEdge1| INFO root:test_ntp.py:105 GIVEN NTP associated are greater than or equal to |1| INFO root:test_ntp.py:112 WHEN NTP associated peers fare |1| INFO root:test_ntp.py:115 THEN test case result is |True| INFO root:test_ntp.py:116 OUTPUT of |show ntp associations| is : remote refid st t when poll reach delay offset jitter ============================================================================== *169.254.169.123 169.254.169.12 3 l 1022 1024 377 0.123 -0.059 0.271 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_alignment_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no alignmentErrors errors | 0.89 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0| TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|. GIVEN interface alignmentErrors errors is |0|. WHEN interface alignmentErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| alignmentErrors, correct state is |0| TEST if interface |Ethernet2| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|. GIVEN interface alignmentErrors errors is |0|. WHEN interface alignmentErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_alignment_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_alignment_errors_on_ exists in results file at index 11 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_alignment_errors_on_ with parameters {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_alignment_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_alignment_errors_on_ exists in results file at index 11 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_authentication_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA dot1x authentication are method-lists set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA authentication methods for dot1x default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dot1x_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:364 TEST is dot1x authentication methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:366 GIVEN dot1x authentication method list: |[]| INFO root:test_aaa.py:370 WHEN EOS dot1x authentication method list is set to |[]| INFO root:test_aaa.py:374 THEN test case result is |True| INFO root:test_aaa.py:375 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/ntp/test_ntp.py::NTPTests::test_if_process_is_running_on_[kg-topology-CloudEOSEdge1] | Verify ntp processes are running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| has |1| process for ntpd -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_process_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show processes| on kg-topology-CloudEOSEdge1 INFO root:test_ntp.py:148 TEST is ntpd running on |kg-topology-CloudEOSEdge1| INFO root:test_ntp.py:149 GIVEN ntpd state is |1| INFO root:test_ntp.py:155 WHEN ntpd number is |1| INFO root:test_ntp.py:158 THEN test case result is |True| INFO root:test_ntp.py:159 OUTPUT of |show processes| is : 21:03:28 up 36 days, 19:45, 0 users, load average: 1.82, 1.47, 1.39 PID %CPU %MEM TT STAT STARTED TIME CMD 1928 102 3.7 ? Sl Aug 13 37-16:02:10 Sfe 1116 2.7 0.9 ? SNl 20:45:06 00:00:30 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1725 0.4 2.3 ? Sl Aug 13 04:04:54 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.14.101 -taillogs -grpcaddr=0.0.0.0:6042 1582 0.2 8.6 ? Sl Aug 13 01:54:56 ConfigAgent 1233 0.1 0.9 ? S Aug 13 01:41:07 ProcMgr-worker 3405 0.1 1.4 ? S Aug 13 01:36:14 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:05:06 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:30 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:49 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:01 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:03 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:01:30 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:00 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 380 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 407 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 499 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 747 0.0 0.1 ? Ss Aug 13 00:03:06 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 759 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 778 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 782 0.0 0.0 ? Ss Aug 13 00:01:05 /usr/bin/ProcMonitor 789 0.0 0.0 ? Ss Aug 13 00:01:27 /usr/lib/systemd/systemd-logind 807 0.0 0.0 ? Ss Aug 13 00:00:16 /usr/sbin/crond -n 819 0.0 0.0 ? S<s Aug 13 00:00:23 /usr/bin/wdogdev -t 60 824 0.0 0.0 ? Ss Aug 13 00:00:05 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 1005 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1007 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1017 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1018 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1028 0.0 0.0 ? S 20:45:05 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 1034 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1038 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1039 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1064 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1179 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1180 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1213 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1216 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1218 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1232 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1478 0.0 0.0 ? S Aug 13 00:12:13 /usr/bin/EosOomAdjust 1486 0.0 0.0 ? S Aug 13 00:00:20 [rbfd_vrf_cleanu] 1501 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1538 0.0 0.0 ? S Aug 13 00:02:38 /usr/bin/SlabMonitor 1539 0.0 2.6 ? S Aug 13 00:51:30 Sysdb 1581 0.0 1.2 ? S Aug 13 00:00:46 StageMgr 1584 0.0 1.4 ? S Aug 13 00:02:21 Fru 1585 0.0 1.8 ? S Aug 13 00:01:16 Launcher 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=267046295036,267046027633,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=267080979441,267080797725,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1718 0.0 1.2 ? S Aug 13 00:09:09 Lldp 1719 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1720 0.0 1.2 ? S Aug 13 00:04:00 McastCommon 1722 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=267138688824,267130622391,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1724 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1726 0.0 1.1 ? S Aug 13 00:02:46 PortSec 1739 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1744 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=270600496842,267232117674,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1745 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1746 0.0 1.4 ? S Aug 13 00:05:18 Bfd 1747 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=271099376041,271003644947,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1750 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1751 0.0 1.3 ? S Aug 13 00:18:52 Lag 1754 0.0 1.7 ? S Aug 13 00:36:34 SuperServer 1767 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=275033642113,271344907121,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1768 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1769 0.0 1.5 ? S Aug 13 00:04:36 Ira 1772 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=275203075095,275062053558,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1773 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1774 0.0 1.2 ? S Aug 13 00:03:44 LedPolicy 1775 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=275412252849,275377553919,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1776 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1777 0.0 1.3 ? S Aug 13 00:08:52 EventMgr 1778 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=275530943653,275498520824,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1779 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.2 ? S Aug 13 00:30:16 StpTxRx 1781 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=275673918628,275618185987,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1783 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1784 0.0 1.1 ? S Aug 13 00:00:40 StandbyCpld 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=275814961243,275751809451,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1786 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1787 0.0 1.0 ? S Aug 13 00:43:54 AgentMonitor 1788 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=279268129963,279198956916,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1789 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1790 0.0 1.6 ? Sl Aug 13 00:10:29 Aaa 1791 0.0 1.2 ? S Aug 13 00:01:34 Tunnel 1793 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=279517763852,279517565226,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1794 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1795 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=279733513327,279733258943,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1796 0.0 1.2 ? S Aug 13 00:04:27 StpTopology 1797 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1798 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=279939374338,279887740448,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1799 0.0 1.4 ? S Aug 13 00:25:38 Acl 1800 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1802 0.0 1.1 ? S Aug 13 00:05:55 Stp 1803 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=280114122924,280113919792,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1804 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.1 ? S Aug 13 00:02:19 KernelNetworkInfo 1806 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=283609312459,283573711926,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1807 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1809 0.0 1.2 ? S Aug 13 00:04:10 McastCommon6 1811 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=283839973599,283788015153,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1813 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1815 0.0 1.2 ? S Aug 13 00:04:05 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=284123665160,284036522428,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1817 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1818 0.0 1.5 ? S Aug 13 00:05:45 Arp 1820 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=284390286503,284256513379,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1821 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1822 0.0 1.4 ? S Aug 13 00:04:32 KernelFib 1824 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=287877695955,287770964417,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1825 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1826 0.0 1.2 ? S Aug 13 00:03:29 Qos 1827 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=288015969009,288008313449,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1828 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1831 0.0 1.1 ? S Aug 13 00:02:10 Thermostat 1834 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=288430062677,288320872305,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1838 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1839 0.0 1.2 ? S Aug 13 00:01:11 L2Rib 1841 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=288639642769,288566958102,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1842 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1844 0.0 1.2 ? S Aug 13 00:02:32 TopoAgent 1845 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=292156458136,288755017730,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1847 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=292294904749,292294697982,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1849 0.0 1.1 ? S Aug 13 00:00:38 PowerFuse 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1853 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=292452307410,292452110553,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1854 0.0 1.1 ? S Aug 13 00:00:38 PowerManager 1856 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1859 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=292715604954,292692638320,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1860 0.0 1.4 ? S Aug 13 00:07:09 Ebra 1861 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.1 ? S Aug 13 00:00:41 ReloadCauseAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=292863065168,292847136027,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1881 0.0 1.5 ? S Aug 13 00:04:39 IgmpSnooping 1883 0.0 1.1 ? S Aug 13 00:00:40 SharedSecretProfile 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=296809139147,296808906976,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1898 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.3 ? S Aug 13 00:01:58 StaticRoute 1903 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=296917164765,296916917865,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1906 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1907 0.0 1.7 ? S Aug 13 00:09:44 IpRib 1909 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=297076889668,297076654146,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1910 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1911 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=297209669171,297209436301,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1912 0.0 1.9 ? S Aug 13 00:02:26 BgpCliHelper 1914 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1915 0.0 1.3 ? S Aug 13 00:04:31 ConnectedRoute 1916 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=297333111290,297332906647,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1918 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1919 0.0 1.3 ? S Aug 13 00:02:02 RouteInput 1920 0.0 2.3 ? Sl Aug 13 00:18:24 Bgp 1922 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=301070490425,300896034705,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 1926 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2295 0.0 0.0 ? Ssl Aug 13 00:00:22 /usr/sbin/rsyslogd -n 2356 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=348668178089,348667946331,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2360 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2363 0.0 1.1 ? S Aug 13 00:00:41 LicenseManager 2448 0.0 0.0 ? S 20:49:01 00:00:00 [kworker/0:2] 2615 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2616 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2617 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2631 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2634 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2637 0.0 0.0 ? S Aug 13 00:00:22 /usr/bin/tail -n 0 --retry --follow=name --pid=2615 /var/log/eos-console 2638 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2660 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=369515596564,369515372050,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2661 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2662 0.0 1.2 ? S Aug 13 00:09:57 Ipsec 2671 0.0 0.4 ? Ss Aug 13 00:00:01 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2699 0.0 0.1 ? Ssl Aug 13 00:01:02 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2739 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3281 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1027180400275,1027179642339,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3289 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3290 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1027289964523,1027289360240,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3295 0.0 1.2 ? S Aug 13 00:07:58 Nat 3297 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3301 0.0 1.3 ? S Aug 13 00:04:05 Vxlan 3304 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1027467071119,1027361358810,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3307 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3308 0.0 1.3 ? S Aug 13 00:04:29 VxlanSwFwd 3365 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3367 0.0 0.1 ? Ssl Aug 13 00:01:08 /usr/libexec/strongswan/charon --use-syslog 3403 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1035728404808,1035728156871,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3404 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3929 0.0 0.0 ? S Aug 13 00:00:01 [kworker/u8:0] 4048 0.0 0.0 ? S Aug 13 00:00:00 /usr/sbin/dnsmasq 5105 0.0 0.0 ? S 20:55:01 00:00:00 [kworker/0:1] 6523 0.0 0.0 ? S 21:00:01 00:00:00 [kworker/0:3] 6625 0.0 0.0 ? S 21:01:01 00:00:00 [kworker/0:4] 7173 0.0 0.0 ? Rs 21:03:28 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 7174 0.0 0.0 ? Rs 21:03:28 00:00:00 [ConfigAgent] 8818 0.0 0.0 ? S Sep 12 00:00:00 [kworker/u8:1] 18981 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050812972099146,5050812971830009,tbl://sysdb/+n,Sysdb (pid:1539) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 18982 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 18983 0.0 1.3 ? Sl Aug 26 00:02:07 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 19027 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 19029 0.0 0.1 ? S Aug 26 00:02:04 nginx: worker process 30730 0.0 0.4 ? Sl Aug 17 00:15:34 dockerd -H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock -s overlay 30750 0.0 0.1 ? Ssl Aug 17 00:12:49 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc 31909 0.0 0.0 ? S 20:37:01 00:00:00 [kworker/0:0] | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_enable_authentication_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA enable authentication method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA authentication methods for enable default: |['local']| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_enable_authentication_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:403 TEST is enable authentication methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:405 GIVEN enable authentication method list: |['local']| INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:417 WHEN EOS enable authentication method list is set to |['local']| INFO root:test_aaa.py:421 THEN test case result is |True| INFO root:test_aaa.py:422 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_sending_messages_on_[kg-topology-CloudEOSEdge1] | Verify tacacs messages are sending correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_tacacs_is_sending_messages_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show tacacs| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:396 Verify if tacacs server(s) are configured on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:402 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:73 TEST is |kg-topology-CloudEOSEdge1| sending messages to TACACS server | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_input_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest does not have input errors | 0.96 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0| TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|. GIVEN interface input errors is |0|. WHEN interface inputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| inErrors, correct state is |0| TEST if interface |Ethernet2| counters have input errors on |kg-topology-CloudEOSEdge1|. GIVEN interface input errors is |0|. WHEN interface inputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_input_errors_on_ exists in results file at index 2 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_input_errors_on_ with parameters {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_input_errors_on_ exists in results file at index 2 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_system_accounting_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA system accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA accounting methods for default: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_system_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:448 TEST is system accounting methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:450 GIVEN default system accounting method list: |[]| and console system accounting methodlist: |[]| INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:466 WHEN default system accounting method list: |[]| and console system accounting method list: |[]| INFO root:test_aaa.py:471 THEN test case result is |True| INFO root:test_aaa.py:472 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_dot1x_accounting_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA dot1x accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA accounting exec methods for dot1x: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dot1x_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:594 TEST is dot1x accounting methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:596 GIVEN dot1x system accounting method list: |[]| and dot1x system accounting methodlist: |[]| INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:611 WHEN default dot1x accounting method list: |[]| and console dot1x accounting method list: |[]| INFO root:test_aaa.py:616 THEN test case result is |True| INFO root:test_aaa.py:617 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_exec_accounting_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA exec accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_exec_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:496 TEST is exec accounting methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:498 GIVEN exec system accounting method list: |[]| and exec system accounting methodlist: |[]| INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:514 WHEN default exec accounting method list: |[]| and console exec accounting methodlist: |[]| INFO root:test_aaa.py:519 THEN test case result is |True| INFO root:test_aaa.py:520 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_symbol_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no alignmentErrors errors | 0.90 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0| TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|. GIVEN interface symbolErrors errors is |0|. WHEN interface symbolErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| symbolErrors, correct state is |0| TEST if interface |Ethernet2| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|. GIVEN interface symbolErrors errors is |0|. WHEN interface symbolErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_symbol_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_symbol_errors_on_ exists in results file at index 3 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_symbol_errors_on_ with parameters {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_symbol_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_symbol_errors_on_ exists in results file at index 3 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_running_on_[kg-topology-CloudEOSEdge2] | Verify management api https server is running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| HTTPS Server is running state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:69 TEST is HTTPS API running on |kg-topology-CloudEOSEdge2| INFO root:test_api.py:70 GIVEN HTTPS API state is |True| INFO root:tests_tools.py:372 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge2 INFO root:test_api.py:80 WHEN HTTPS API state is |True| INFO root:test_api.py:83 THEN test case result is |True| INFO root:test_api.py:84 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 129179 Last hit: 0 seconds ago Bytes in: 19687517 Bytes out: 344133165 Requests: 122315 Commands: 244630 Duration: 13525.570 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 122315 19687517 344133165 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.15.101:443 Ethernet2 : https://11.201.15.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.3:443 Loopback10 : https://198.18.0.37:443 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/aaa/test_aaa.py::AAATests::test_if_priviledge_accounting_methods_set_on_[kg-topology-CloudEOSEdge2] | Verify AAA priviledge accounting method-lists are set correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| AAA accounting exec methods for console: |[]| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_aaa.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_priviledge_accounting_methods_set_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True} INFO root:test_aaa.py:546 TEST is priviledge accounting methods list set correct on |kg-topology-CloudEOSEdge2| INFO root:test_aaa.py:548 GIVEN priviledge system accounting method list: |[]| and priviledge system accounting method list: |[]| INFO root:tests_tools.py:372 Verify if show command |show aaa methods all| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show aaa methods all| on kg-topology-CloudEOSEdge2 INFO root:test_aaa.py:564 WHEN default privilege accounting method list: |[]| and console privilege accounting method list: |[]| INFO root:test_aaa.py:569 THEN test case result is |True| INFO root:test_aaa.py:570 OUTPUT of |show aaa methods all| is : Authentication method lists for LOGIN: name=default methods=local Authentication method list for ENABLE: name=default methods=local Authentication method list for DOT1X: name=default methods= Authorization method lists for COMMANDS: name=privilege0-15 methods=none Authorization method list for EXEC: name=exec methods=none Accounting method lists for COMMANDS: name=privilege0-15 default-action=none Accounting method list for EXEC: name=exec default-action=none Accounting method list for SYSTEM: name=system default-action=none Accounting method list for DOT1X: name=dot1x default-action=none | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_port_is_correct_on_[kg-topology-CloudEOSEdge2] | Verify https server is enabled on port 443 | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| HTTPS Server is running on port: |443| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_port_is_correct_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True} INFO root:test_api.py:106 TEST is HTTPS API port on |kg-topology-CloudEOSEdge2| INFO root:test_api.py:107 GIVEN HTTPS API port is |443| INFO root:tests_tools.py:372 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge2 INFO root:test_api.py:116 WHEN HTTPS API port is |443| INFO root:test_api.py:119 THEN test case result is |True| INFO root:test_api.py:120 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 129179 Last hit: 0 seconds ago Bytes in: 19687517 Bytes out: 344133165 Requests: 122315 Commands: 244630 Duration: 13525.570 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 122315 19687517 344133165 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.15.101:443 Ethernet2 : https://11.201.15.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.3:443 Loopback10 : https://198.18.0.37:443 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_output_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest does not have output errors | 1.12 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0| TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|. GIVEN interface output errors is |0|. WHEN interface outputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| outErrors, correct state is |0| TEST if interface |Ethernet2| has output errors on |kg-topology-CloudEOSEdge1|. GIVEN interface output errors is |0|. WHEN interface outputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_output_errors_on_ exists in results file at index 10 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_output_errors_on_ with parameters {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_output_errors_on_ exists in results file at index 10 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/api/test_api.py::APITests::test_if_management_http_api_server_is_running_on_[kg-topology-CloudEOSEdge2] | Verify management api http server is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_http_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:178 TEST is HTTP API running on |kg-topology-CloudEOSEdge2| INFO root:test_api.py:179 GIVEN HTTP API state is |False| INFO root:tests_tools.py:372 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge2 INFO root:test_api.py:189 WHEN HTTP API state is |False| INFO root:test_api.py:192 THEN test case result is |True| INFO root:test_api.py:193 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 129178 Last hit: 0 seconds ago Bytes in: 19687352 Bytes out: 344131901 Requests: 122314 Commands: 244628 Duration: 13525.535 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 122314 19687352 344131901 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.15.101:443 Ethernet2 : https://11.201.15.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.3:443 Loopback10 : https://198.18.0.37:443 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/api/test_api.py::APITests::test_if_management_https_api_server_is_enabled_on_[kg-topology-CloudEOSEdge2] | Verify management api https server is enabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |{dut_name}| API is enabled state: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_https_api_server_is_enabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True} INFO root:test_api.py:142 TEST is HTTPS API enabled on |kg-topology-CloudEOSEdge2| INFO root:test_api.py:143 GIVEN HTTPS API enabled is |True| INFO root:tests_tools.py:372 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge2 INFO root:test_api.py:152 WHEN HTTPS API enabled is |True| INFO root:test_api.py:155 THEN test case result is |True| INFO root:test_api.py:156 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 129179 Last hit: 0 seconds ago Bytes in: 19687517 Bytes out: 344133165 Requests: 122315 Commands: 244630 Duration: 13525.570 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 122315 19687517 344133165 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.15.101:443 Ethernet2 : https://11.201.15.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.3:443 Loopback10 : https://198.18.0.37:443 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/api/test_api.py::APITests::test_if_management_local_http_api_server_is_running_on_[kg-topology-CloudEOSEdge2] | Verify management api local httpserver is not running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| Local HTTP Server is running state: |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_api.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_management_local_http_api_server_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True} INFO root:test_api.py:215 TEST is local HTTP API running on |kg-topology-CloudEOSEdge2| INFO root:test_api.py:216 GIVEN local HTTP API state is |False| INFO root:tests_tools.py:372 Verify if show command |show management api http-commands| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show management api http-commands| on kg-topology-CloudEOSEdge2 INFO root:test_api.py:226 WHEN HTTP API state is |False| INFO root:test_api.py:229 THEN test case result is |True| INFO root:test_api.py:230 OUTPUT of |show management api http-commands| is : Enabled: Yes HTTPS server: running, set to use port 443 HTTP server: shutdown, set to use port 80 Local HTTP server: shutdown, no authentication, set to use port 8080 Unix Socket server: shutdown, no authentication VRFs: default Hits: 129178 Last hit: 0 seconds ago Bytes in: 19687352 Bytes out: 344131901 Requests: 122314 Commands: 244628 Duration: 13525.535 seconds SSL Profile: none FIPS Mode: No QoS DSCP: 0 Log Level: none CSP Frame Ancestor: None TLS Protocols: 1.0 1.1 1.2 User Requests Bytes in Bytes out Last hit ------------- -------------- -------------- --------------- ------------- kgrozis 122314 19687352 344131901 0 seconds ago URLs --------------------------------------- Ethernet1 : https://11.201.15.101:443 Ethernet2 : https://11.201.15.201:443 Ethernet100 : https://11.201.8.1:443 Loopback0 : https://11.201.0.3:443 Loopback10 : https://198.18.0.37:443 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/cpu/test_cpu.py::CPUTests::test_1_min_cpu_utlization_on_[kg-topology-CloudEOSEdge2] | Verify 1 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| 1 minute CPU load average is |1.28%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_1_min_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show processes| on kg-topology-CloudEOSEdge2 INFO root:test_cpu.py:105 TEST if 1 minute CPU utilization is less than specified value on |kg-topology-CloudEOSEdge2| INFO root:test_cpu.py:107 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:111 WHEN CPU utilization is |1.28| INFO root:test_cpu.py:114 THEN test case result is |True| INFO root:test_cpu.py:115 OUTPUT of |show processes| is : 21:03:29 up 36 days, 19:45, 0 users, load average: 1.17, 1.28, 1.37 PID %CPU %MEM TT STAT STARTED TIME CMD 2025 101 3.7 ? Sl Aug 13 37-08:33:41 Sfe 16716 4.2 0.9 ? SNl 20:45:07 00:00:46 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1675 2.5 2.1 ? Sl Aug 13 22:47:33 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042 1476 0.3 2.6 ? S Aug 13 02:45:19 Sysdb 1518 0.3 7.6 ? Sl Aug 13 03:20:06 ConfigAgent 1243 0.2 0.9 ? S Aug 13 02:11:16 ProcMgr-worker 1951 0.2 1.7 ? S Aug 13 01:52:19 IpRib 1703 0.1 1.7 ? S Aug 13 01:08:09 SuperServer 1719 0.1 1.2 ? S Aug 13 00:56:25 StpTxRx 1727 0.1 1.0 ? S Aug 13 01:44:48 AgentMonitor 1980 0.1 2.3 ? Sl Aug 13 01:08:51 Bgp 3369 0.1 1.4 ? S Aug 13 01:42:38 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:07:52 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:20 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:32 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:22 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 746 0.0 0.0 ? Ss Aug 13 00:03:44 /usr/lib/systemd/systemd-logind 752 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 770 0.0 0.1 ? Ss Aug 13 00:05:43 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 790 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 880 0.0 0.0 ? Ss Aug 13 00:00:21 /usr/sbin/crond -n 889 0.0 0.0 ? S<s Aug 13 00:00:27 /usr/bin/wdogdev -t 60 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1415 0.0 0.0 ? S Aug 13 00:12:28 /usr/bin/EosOomAdjust 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu] 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1475 0.0 0.0 ? S Aug 13 00:02:53 /usr/bin/SlabMonitor 1517 0.0 1.2 ? S Aug 13 00:06:19 StageMgr 1521 0.0 1.4 ? S Aug 13 00:22:20 Fru 1524 0.0 1.8 ? S Aug 13 00:11:07 Launcher 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1654 0.0 1.3 ? S Aug 13 00:30:26 Lldp 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1661 0.0 1.2 ? S Aug 13 00:22:34 McastCommon 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1668 0.0 1.1 ? S Aug 13 00:24:37 PortSec 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1699 0.0 1.4 ? S Aug 13 00:24:03 Bfd 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1702 0.0 1.3 ? S Aug 13 00:44:43 Lag 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1709 0.0 1.5 ? S Aug 13 00:22:49 Ira 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:26:57 LedPolicy 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1716 0.0 1.3 ? S Aug 13 00:29:46 EventMgr 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1724 0.0 1.1 ? S Aug 13 00:06:22 StandbyCpld 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1731 0.0 1.2 ? S Aug 13 00:10:20 Tunnel 1732 0.0 1.6 ? Sl Aug 13 00:18:10 Aaa 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1736 0.0 1.2 ? S Aug 13 00:22:42 StpTopology 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1743 0.0 1.4 ? S Aug 13 00:50:07 Acl 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1759 0.0 1.1 ? S Aug 13 00:36:35 Stp 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.1 ? S Aug 13 00:07:27 KernelNetworkInfo 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1789 0.0 1.2 ? S Aug 13 00:22:38 McastCommon6 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.2 ? S Aug 13 00:22:51 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1823 0.0 1.5 ? S Aug 13 00:33:52 Arp 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1846 0.0 1.4 ? S Aug 13 00:22:46 KernelFib 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1855 0.0 1.2 ? S Aug 13 00:25:38 Qos 1856 0.0 1.1 ? S Aug 13 00:07:28 Thermostat 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1861 0.0 1.2 ? S Aug 13 00:07:29 L2Rib 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.2 ? S Aug 13 00:22:38 TopoAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1868 0.0 1.1 ? S Aug 13 00:06:20 PowerFuse 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1871 0.0 1.1 ? S Aug 13 00:06:20 PowerManager 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1877 0.0 1.4 ? S Aug 13 00:29:08 Ebra 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1893 0.0 1.1 ? S Aug 13 00:06:21 ReloadCauseAgent 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.1 ? S Aug 13 00:06:21 SharedSecretProfile 1905 0.0 1.5 ? S Aug 13 00:22:56 IgmpSnooping 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1944 0.0 1.3 ? S Aug 13 00:07:28 StaticRoute 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1956 0.0 1.9 ? S Aug 13 00:07:38 BgpCliHelper 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1959 0.0 1.3 ? S Aug 13 00:22:53 ConnectedRoute 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1968 0.0 1.3 ? S Aug 13 00:07:29 RouteInput 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2319 0.0 0.0 ? Ssl Aug 13 00:00:34 /usr/sbin/rsyslogd -n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2597 0.0 1.1 ? S Aug 13 00:06:22 LicenseManager 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2638 0.0 0.0 ? S Aug 13 00:01:12 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2697 0.0 1.2 ? S Aug 13 00:47:09 Ipsec 2699 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2726 0.0 0.1 ? Ssl Aug 13 00:02:54 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3242 0.0 1.2 ? S Aug 13 00:50:00 Nat 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3263 0.0 1.4 ? S Aug 13 00:23:55 Vxlan 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3278 0.0 1.4 ? S Aug 13 00:25:09 VxlanSwFwd 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3317 0.0 0.1 ? Ssl Aug 13 00:03:46 /usr/libexec/strongswan/charon --use-syslog 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0] 3977 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq 12089 0.0 0.0 ? S 20:30:01 00:00:00 [kworker/0:4] 16200 0.0 0.0 ? S 20:42:01 00:00:00 [kworker/0:0] 16674 0.0 0.0 ? S 20:45:06 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 19259 0.0 0.0 ? S 20:53:00 00:00:00 [kworker/0:2] 21869 0.0 0.0 ? S 20:59:00 00:00:00 [kworker/0:1] 22584 0.0 0.0 ? Rs 21:03:28 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 22585 0.0 0.0 ? Zs 21:03:28 00:00:00 [uptime] <defunct> 26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26291 0.0 1.3 ? Sl Aug 26 00:06:47 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 26337 0.0 0.1 ? S Aug 26 00:02:56 nginx: worker process | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_out_counters_are_discarding_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no outDiscards | 1.06 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0| TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| GIVEN interface outbound discards are |0| WHEN interface outbound discards are |0| THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 - On interface |Ethernet2|: interface counter discards has |0| outDiscards, correct state is |0| TEST if interface |Ethernet2| counters has outbound discards on |kg-topology-CloudEOSEdge1| GIVEN interface outbound discards are |0| WHEN interface outbound discards are |0| THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_out_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_out_counters_are_discarding_on_ exists in results file at index 9 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_out_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_out_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_out_counters_are_discarding_on_ exists in results file at index 9 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/cpu/test_cpu.py::CPUTests::test_1_sec_cpu_utlization_on_[kg-topology-CloudEOSEdge2] | Verify 1 second CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| 1 second CPU load average is |1.17%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_1_sec_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show processes| on kg-topology-CloudEOSEdge2 INFO root:test_cpu.py:70 TEST if 1 second CPU utilization is less than specified value on |kg-topology-CloudEOSEdge2| INFO root:test_cpu.py:72 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:76 WHEN CPU utilization is |1.17| INFO root:test_cpu.py:79 THEN test case result is |True| INFO root:test_cpu.py:80 OUTPUT of |show processes| is : 21:03:28 up 36 days, 19:45, 0 users, load average: 1.17, 1.28, 1.37 PID %CPU %MEM TT STAT STARTED TIME CMD 2025 101 3.7 ? Sl Aug 13 37-08:33:41 Sfe 16716 4.2 0.9 ? SNl 20:45:07 00:00:46 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1675 2.5 2.1 ? Sl Aug 13 22:47:33 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042 1476 0.3 2.6 ? S Aug 13 02:45:19 Sysdb 1518 0.3 7.6 ? Sl Aug 13 03:20:06 ConfigAgent 1243 0.2 0.9 ? S Aug 13 02:11:16 ProcMgr-worker 1951 0.2 1.7 ? S Aug 13 01:52:19 IpRib 1703 0.1 1.7 ? S Aug 13 01:08:09 SuperServer 1719 0.1 1.2 ? S Aug 13 00:56:25 StpTxRx 1727 0.1 1.0 ? S Aug 13 01:44:48 AgentMonitor 1980 0.1 2.3 ? Sl Aug 13 01:08:51 Bgp 3369 0.1 1.4 ? S Aug 13 01:42:38 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:07:52 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:20 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:32 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:22 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 746 0.0 0.0 ? Ss Aug 13 00:03:44 /usr/lib/systemd/systemd-logind 752 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 770 0.0 0.1 ? Ss Aug 13 00:05:43 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 790 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 880 0.0 0.0 ? Ss Aug 13 00:00:21 /usr/sbin/crond -n 889 0.0 0.0 ? S<s Aug 13 00:00:27 /usr/bin/wdogdev -t 60 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1415 0.0 0.0 ? S Aug 13 00:12:28 /usr/bin/EosOomAdjust 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu] 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1475 0.0 0.0 ? S Aug 13 00:02:53 /usr/bin/SlabMonitor 1517 0.0 1.2 ? S Aug 13 00:06:19 StageMgr 1521 0.0 1.4 ? S Aug 13 00:22:20 Fru 1524 0.0 1.8 ? S Aug 13 00:11:07 Launcher 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1654 0.0 1.3 ? S Aug 13 00:30:26 Lldp 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1661 0.0 1.2 ? S Aug 13 00:22:34 McastCommon 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1668 0.0 1.1 ? S Aug 13 00:24:37 PortSec 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1699 0.0 1.4 ? S Aug 13 00:24:03 Bfd 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1702 0.0 1.3 ? S Aug 13 00:44:43 Lag 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1709 0.0 1.5 ? S Aug 13 00:22:49 Ira 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:26:57 LedPolicy 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1716 0.0 1.3 ? S Aug 13 00:29:46 EventMgr 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1724 0.0 1.1 ? S Aug 13 00:06:22 StandbyCpld 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1731 0.0 1.2 ? S Aug 13 00:10:20 Tunnel 1732 0.0 1.6 ? Sl Aug 13 00:18:10 Aaa 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1736 0.0 1.2 ? S Aug 13 00:22:42 StpTopology 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1743 0.0 1.4 ? S Aug 13 00:50:07 Acl 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1759 0.0 1.1 ? S Aug 13 00:36:35 Stp 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.1 ? S Aug 13 00:07:27 KernelNetworkInfo 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1789 0.0 1.2 ? S Aug 13 00:22:38 McastCommon6 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.2 ? S Aug 13 00:22:51 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1823 0.0 1.5 ? S Aug 13 00:33:52 Arp 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1846 0.0 1.4 ? S Aug 13 00:22:46 KernelFib 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1855 0.0 1.2 ? S Aug 13 00:25:38 Qos 1856 0.0 1.1 ? S Aug 13 00:07:28 Thermostat 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1861 0.0 1.2 ? S Aug 13 00:07:29 L2Rib 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.2 ? S Aug 13 00:22:38 TopoAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1868 0.0 1.1 ? S Aug 13 00:06:20 PowerFuse 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1871 0.0 1.1 ? S Aug 13 00:06:20 PowerManager 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1877 0.0 1.4 ? S Aug 13 00:29:08 Ebra 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1893 0.0 1.1 ? S Aug 13 00:06:21 ReloadCauseAgent 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.1 ? S Aug 13 00:06:21 SharedSecretProfile 1905 0.0 1.5 ? S Aug 13 00:22:56 IgmpSnooping 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1944 0.0 1.3 ? S Aug 13 00:07:28 StaticRoute 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1956 0.0 1.9 ? S Aug 13 00:07:38 BgpCliHelper 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1959 0.0 1.3 ? S Aug 13 00:22:53 ConnectedRoute 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1968 0.0 1.3 ? S Aug 13 00:07:29 RouteInput 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2319 0.0 0.0 ? Ssl Aug 13 00:00:34 /usr/sbin/rsyslogd -n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2597 0.0 1.1 ? S Aug 13 00:06:22 LicenseManager 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2638 0.0 0.0 ? S Aug 13 00:01:12 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2697 0.0 1.2 ? S Aug 13 00:47:09 Ipsec 2699 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2726 0.0 0.1 ? Ssl Aug 13 00:02:54 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3242 0.0 1.2 ? S Aug 13 00:50:00 Nat 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3263 0.0 1.4 ? S Aug 13 00:23:55 Vxlan 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3278 0.0 1.4 ? S Aug 13 00:25:09 VxlanSwFwd 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3317 0.0 0.1 ? Ssl Aug 13 00:03:46 /usr/libexec/strongswan/charon --use-syslog 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0] 3977 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq 12089 0.0 0.0 ? S 20:30:01 00:00:00 [kworker/0:4] 16200 0.0 0.0 ? S 20:42:01 00:00:00 [kworker/0:0] 16674 0.0 0.0 ? S 20:45:06 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 19259 0.0 0.0 ? S 20:53:00 00:00:00 [kworker/0:2] 21869 0.0 0.0 ? S 20:59:00 00:00:00 [kworker/0:1] 22580 0.0 0.0 ? Rs 21:03:28 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 22582 0.0 0.0 ? Rs 21:03:28 00:00:00 [ConfigAgent] 26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26291 0.0 1.3 ? Sl Aug 26 00:06:47 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 26337 0.0 0.1 ? S Aug 26 00:02:56 nginx: worker process | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/cpu/test_cpu.py::CPUTests::test_5_min_cpu_utlization_on_[kg-topology-CloudEOSEdge2] | Verify 5 minute CPU % is under specificied value | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| 5 minute CPU load average is |1.37%| and should be under |10%| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_cpu.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_5_min_cpu_utlization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show processes| on kg-topology-CloudEOSEdge2 INFO root:test_cpu.py:140 TEST if 5 minute CPU utilization is less than specified value on |kg-topology-CloudEOSEdge2| INFO root:test_cpu.py:142 GIVEN CPU utilization is less than |10| INFO root:test_cpu.py:146 WHEN CPU utilization is |1.37| INFO root:test_cpu.py:149 THEN test case result is |True| INFO root:test_cpu.py:150 OUTPUT of |show processes| is : 21:03:29 up 36 days, 19:45, 0 users, load average: 1.17, 1.28, 1.37 PID %CPU %MEM TT STAT STARTED TIME CMD 2025 101 3.7 ? Sl Aug 13 37-08:33:41 Sfe 16716 4.2 0.9 ? SNl 20:45:07 00:00:46 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1675 2.5 2.1 ? Sl Aug 13 22:47:33 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042 1476 0.3 2.6 ? S Aug 13 02:45:19 Sysdb 1518 0.3 7.6 ? Sl Aug 13 03:20:06 ConfigAgent 1243 0.2 0.9 ? S Aug 13 02:11:16 ProcMgr-worker 1951 0.2 1.7 ? S Aug 13 01:52:19 IpRib 1703 0.1 1.7 ? S Aug 13 01:08:09 SuperServer 1719 0.1 1.2 ? S Aug 13 00:56:25 StpTxRx 1727 0.1 1.0 ? S Aug 13 01:44:48 AgentMonitor 1980 0.1 2.3 ? Sl Aug 13 01:08:51 Bgp 3369 0.1 1.4 ? S Aug 13 01:42:38 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:07:52 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:20 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:32 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:22 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 746 0.0 0.0 ? Ss Aug 13 00:03:44 /usr/lib/systemd/systemd-logind 752 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 770 0.0 0.1 ? Ss Aug 13 00:05:43 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 790 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 880 0.0 0.0 ? Ss Aug 13 00:00:21 /usr/sbin/crond -n 889 0.0 0.0 ? S<s Aug 13 00:00:27 /usr/bin/wdogdev -t 60 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1415 0.0 0.0 ? S Aug 13 00:12:28 /usr/bin/EosOomAdjust 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu] 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1475 0.0 0.0 ? S Aug 13 00:02:53 /usr/bin/SlabMonitor 1517 0.0 1.2 ? S Aug 13 00:06:19 StageMgr 1521 0.0 1.4 ? S Aug 13 00:22:20 Fru 1524 0.0 1.8 ? S Aug 13 00:11:07 Launcher 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1654 0.0 1.3 ? S Aug 13 00:30:26 Lldp 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1661 0.0 1.2 ? S Aug 13 00:22:34 McastCommon 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1668 0.0 1.1 ? S Aug 13 00:24:37 PortSec 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1699 0.0 1.4 ? S Aug 13 00:24:03 Bfd 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1702 0.0 1.3 ? S Aug 13 00:44:43 Lag 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1709 0.0 1.5 ? S Aug 13 00:22:49 Ira 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:26:57 LedPolicy 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1716 0.0 1.3 ? S Aug 13 00:29:46 EventMgr 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1724 0.0 1.1 ? S Aug 13 00:06:22 StandbyCpld 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1731 0.0 1.2 ? S Aug 13 00:10:20 Tunnel 1732 0.0 1.6 ? Sl Aug 13 00:18:10 Aaa 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1736 0.0 1.2 ? S Aug 13 00:22:42 StpTopology 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1743 0.0 1.4 ? S Aug 13 00:50:07 Acl 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1759 0.0 1.1 ? S Aug 13 00:36:35 Stp 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.1 ? S Aug 13 00:07:27 KernelNetworkInfo 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1789 0.0 1.2 ? S Aug 13 00:22:38 McastCommon6 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.2 ? S Aug 13 00:22:51 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1823 0.0 1.5 ? S Aug 13 00:33:52 Arp 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1846 0.0 1.4 ? S Aug 13 00:22:46 KernelFib 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1855 0.0 1.2 ? S Aug 13 00:25:38 Qos 1856 0.0 1.1 ? S Aug 13 00:07:28 Thermostat 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1861 0.0 1.2 ? S Aug 13 00:07:29 L2Rib 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.2 ? S Aug 13 00:22:38 TopoAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1868 0.0 1.1 ? S Aug 13 00:06:20 PowerFuse 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1871 0.0 1.1 ? S Aug 13 00:06:20 PowerManager 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1877 0.0 1.4 ? S Aug 13 00:29:08 Ebra 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1893 0.0 1.1 ? S Aug 13 00:06:21 ReloadCauseAgent 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.1 ? S Aug 13 00:06:21 SharedSecretProfile 1905 0.0 1.5 ? S Aug 13 00:22:56 IgmpSnooping 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1944 0.0 1.3 ? S Aug 13 00:07:28 StaticRoute 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1956 0.0 1.9 ? S Aug 13 00:07:38 BgpCliHelper 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1959 0.0 1.3 ? S Aug 13 00:22:53 ConnectedRoute 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1968 0.0 1.3 ? S Aug 13 00:07:29 RouteInput 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2319 0.0 0.0 ? Ssl Aug 13 00:00:34 /usr/sbin/rsyslogd -n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2597 0.0 1.1 ? S Aug 13 00:06:22 LicenseManager 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2638 0.0 0.0 ? S Aug 13 00:01:12 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2697 0.0 1.2 ? S Aug 13 00:47:09 Ipsec 2699 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2726 0.0 0.1 ? Ssl Aug 13 00:02:54 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3242 0.0 1.2 ? S Aug 13 00:50:00 Nat 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3263 0.0 1.4 ? S Aug 13 00:23:55 Vxlan 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3278 0.0 1.4 ? S Aug 13 00:25:09 VxlanSwFwd 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3317 0.0 0.1 ? Ssl Aug 13 00:03:46 /usr/libexec/strongswan/charon --use-syslog 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0] 3977 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq 12089 0.0 0.0 ? S 20:30:01 00:00:00 [kworker/0:4] 16200 0.0 0.0 ? S 20:42:01 00:00:00 [kworker/0:0] 16674 0.0 0.0 ? S 20:45:06 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 19259 0.0 0.0 ? S 20:53:00 00:00:00 [kworker/0:2] 21869 0.0 0.0 ? S 20:59:00 00:00:00 [kworker/0:1] 22584 0.0 0.0 ? Rs 21:03:28 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 22585 0.0 0.0 ? Zs 21:03:28 00:00:00 [uptime] <defunct> 26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26291 0.0 1.3 ? Sl Aug 26 00:06:47 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 26337 0.0 0.1 ? S Aug 26 00:02:56 nginx: worker process | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_enabled_on_[kg-topology-CloudEOSEdge2] | Verify a list of daemons are enabled on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: TerminAttr daemon enabled is |True| and expected value is |True|. Test result is True -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_daemons_are_enabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:test_daemon.py:105 TEST is terminattr daemon enabled on |kg-topology-CloudEOSEdge2| INFO root:test_daemon.py:106 GIVEN expected terminattr​ enabled state: |True| INFO root:tests_tools.py:372 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show daemon| on kg-topology-CloudEOSEdge2 INFO root:test_daemon.py:114 WHEN terminattr​ device enabled state is |True| INFO root:test_daemon.py:118 THEN test case result is |True| INFO root:test_daemon.py:119 OUTPUT of |show daemon|: Process: TerminAttr (running with PID 1675) Uptime: 36 days, 19:44:41 (Start time: Thu Aug 13 01:18:53 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/daemon/test_daemon.py::DaemonTests::test_if_daemons_are_running_on_[kg-topology-CloudEOSEdge2] | Verify a list of daemons are running on DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: TerminAttr daemon running is |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_daemon.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_daemons_are_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show daemon| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show daemon| on kg-topology-CloudEOSEdge2 INFO root:test_daemon.py:73 TEST is TerminAttr daemon running on |kg-topology-CloudEOSEdge2| INFO root:test_daemon.py:74 GIVEN expected TerminAttr running state: |True| INFO root:test_daemon.py:79 WHEN TerminAttr device running state is |True| INFO root:test_daemon.py:83 THEN test case result is |True| INFO root:test_daemon.py:84 OUTPUT of |show daemon| is : Process: TerminAttr (running with PID 1675) Uptime: 36 days, 19:44:41 (Start time: Thu Aug 13 01:18:53 2020) No configuration options stored. No status data stored. | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_short_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no frameTooShorts errors | 1.06 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0| TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|. GIVEN interface frameTooShorts errors is |0|. WHEN interface frameTooShortserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| frameTooShorts, correct state is |0| TEST if interface |Ethernet2| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|. GIVEN interface frameTooShorts errors is |0|. WHEN interface frameTooShortserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_frame_too_short_errors_on_ exists in results file at index 1 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_frame_too_short_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_frame_too_short_errors_on_ exists in results file at index 1 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_installed_on_[kg-topology-CloudEOSEdge2] | Verify a list of extension are installed on a DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| awslogs.swix extension is |installed| On router |kg-topology-CloudEOSEdge2| awsha.rpm extension is |installed| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_extensions_are_installed_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show extensions| on kg-topology-CloudEOSEdge2 INFO root:test_extension.py:73 TEST is awslogs.swix extension installed on |kg-topology-CloudEOSEdge2| INFO root:test_extension.py:75 GIVEN expected awslogs.swix extension status: |installed| INFO root:test_extension.py:83 WHEN awslogs.swix extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:73 TEST is awsha.rpm extension installed on |kg-topology-CloudEOSEdge2| INFO root:test_extension.py:75 GIVEN expected awsha.rpm extension status: |installed| INFO root:test_extension.py:83 WHEN awsha.rpm extenstion installation state is |installed| INFO root:test_extension.py:87 THEN test case result is |True| INFO root:test_extension.py:88 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/extension/test_extension.py::ExtensionsTests::test_if_extensions_are_erroring_on_[kg-topology-CloudEOSEdge2] | Verify a list of extension are not erroring on a DUT | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| awslogs.swix extension error is |False| On router |kg-topology-CloudEOSEdge2| awsha.rpm extension error is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_extension.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_extensions_are_erroring_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show extensions| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show extensions| on kg-topology-CloudEOSEdge2 INFO root:test_extension.py:117 TEST is awslogs.swix extension not erroring on |kg-topology-CloudEOSEdge2| INFO root:test_extension.py:119 GIVEN expected awslogs.swix extension status: |False| INFO root:test_extension.py:128 WHEN awslogs.swix extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature INFO root:test_extension.py:117 TEST is awsha.rpm extension not erroring on |kg-topology-CloudEOSEdge2| INFO root:test_extension.py:119 GIVEN expected awsha.rpm extension status: |False| INFO root:test_extension.py:128 WHEN awsha.rpm extenstion error state is |False| INFO root:test_extension.py:132 THEN test case result is |True| INFO root:test_extension.py:133 OUTPUT of |show extensions| is : Name Version/Release Status Extension ----------------- -------------------- ----------- --------- awsha.rpm 0.1.1/1 A, I 1 awslogs.swix 1.4.0/1.el7 A, I 1 A: available | NA: not available | I: installed | NI: not installed | F: forced S: valid signature | NS: invalid signature | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_in_counters_are_discarding_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no inDiscards | 0.99 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0| TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|. GIVEN interface inbound discards are |0|. WHEN interface inbound discards are |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 - On interface |Ethernet2|: interface counter discards has |0| inDiscards, correct state is |0| TEST if interface |Ethernet2| counters has inbound discards on |kg-topology-CloudEOSEdge1|. GIVEN interface inbound discards are |0|. WHEN interface inbound discards are |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_in_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_in_counters_are_discarding_on_ exists in results file at index 7 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_in_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_in_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_in_counters_are_discarding_on_ exists in results file at index 7 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge1 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_long_errors_on_[kg-topology-CloudEOSEdge1] | Verify the interfaces of interest have no frameLongShorts errors | 0.94 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge1|: - On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0| TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|. GIVEN interface frameTooLongs errors is |0|. WHEN interface frameTooLongserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| frameTooLongs, correct state is |0| TEST if interface |Ethernet2| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|. GIVEN interface frameTooLongs errors is |0|. WHEN interface frameTooLongserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge1 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_frame_too_long_errors_on_ exists in results file at index 6 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge1 to test case test_if_intf_counters_has_frame_too_long_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge1', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEOSEdge1 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_frame_too_long_errors_on_ exists in results file at index 6 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge1 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/dns/test_dns.py::DNSTests::test_if_dns_resolves_on_[kg-topology-CloudEOSEdge2] | Verify DNS is running by performing pings and verifying name resolution | 1.28 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| DNS resolution |Passed| for google.com On router |kg-topology-CloudEOSEdge2| DNS resolution |Passed| for cnn.com On router |kg-topology-CloudEOSEdge2| DNS resolution |Passed| for arista.com -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_dns.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_dns_resolves_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True} INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge2| resolve google.com INFO root:test_dns.py:71 GIVEN URL is |google.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping google.com| is : PING google.com (172.217.1.46) 72(100) bytes of data. 76 bytes from ord37s07-in-f46.1e100.net (172.217.1.46): icmp_seq=1 ttl=100 (truncated) 76 bytes from ord37s07-in-f46.1e100.net (172.217.1.46): icmp_seq=2 ttl=100 (truncated) 76 bytes from ord37s07-in-f46.1e100.net (172.217.1.46): icmp_seq=3 ttl=100 (truncated) 76 bytes from ord37s07-in-f46.1e100.net (172.217.1.46): icmp_seq=4 ttl=100 (truncated) 76 bytes from ord37s07-in-f46.1e100.net (172.217.1.46): icmp_seq=5 ttl=100 (truncated) --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 65ms rtt min/avg/max/mdev = 16.555/16.853/17.988/0.567 ms, pipe 2, ipg/ewma 16.394/17.400 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge2| resolve cnn.com INFO root:test_dns.py:71 GIVEN URL is |cnn.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping cnn.com| is : PING cnn.com (151.101.129.67) 72(100) bytes of data. 80 bytes from 151.101.129.67 (151.101.129.67): icmp_seq=1 ttl=37 time=11.9 ms 80 bytes from 151.101.129.67 (151.101.129.67): icmp_seq=2 ttl=37 time=10.5 ms 80 bytes from 151.101.129.67 (151.101.129.67): icmp_seq=3 ttl=37 time=10.5 ms 80 bytes from 151.101.129.67 (151.101.129.67): icmp_seq=4 ttl=37 time=10.5 ms 80 bytes from 151.101.129.67 (151.101.129.67): icmp_seq=5 ttl=37 time=10.5 ms --- cnn.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 47ms rtt min/avg/max/mdev = 10.545/10.844/11.968/0.562 ms, pipe 2, ipg/ewma 11.884/11.386 ms INFO root:test_dns.py:70 TEST can |kg-topology-CloudEOSEdge2| resolve arista.com INFO root:test_dns.py:71 GIVEN URL is |arista.com| INFO root:test_dns.py:72 WHEN exception is |Name or service not known| string INFO root:test_dns.py:89 THEN test case result is |Passed| INFO root:test_dns.py:90 OUTPUT of |ping arista.com| is : PING arista.com (64.68.200.46) 72(100) bytes of data. 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=1 ttl=39 time=24.1 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=2 ttl=39 time=22.7 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=3 ttl=39 time=22.7 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=4 ttl=39 time=22.7 ms 80 bytes from url-fwd.easydns.com (64.68.200.46): icmp_seq=5 ttl=39 time=22.7 ms --- arista.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 69ms rtt min/avg/max/mdev = 22.715/23.021/24.168/0.573 ms, pipe 3, ipg/ewma 17.434/23.574 ms | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_protocol_status_is_connected_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest protocol statuses are up | 0.99 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up| TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|. GIVEN interface status is |up|. WHEN interface status is |up|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 - On interface |Ethernet2|: interface link line protocol status is set to: |up|, correct state is |up| TEST if interface |Ethernet2| link prootocol statuses on |kg-topology-CloudEOSEdge2|. GIVEN interface status is |up|. WHEN interface status is |up|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_protocol_status_is_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:372 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces status| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_protocol_status_is_connected_on_ exists in results file at index 8 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_protocol_status_is_connected_on_ with parameters {'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'actual_output': 'up', 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_protocol_status_is_connected_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_protocol_status_is_connected_on_ exists in results file at index 8 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/filesystem/test_filesystem.py::FileSystemTests::test_if_files_on_[kg-topology-CloudEOSEdge2] | Verify filesystem is correct and expected files are present | 0.71 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: flash:startup-config file isDir state is |False| On router |kg-topology-CloudEOSEdge2|: flash:veos-config file isDir state is |False| On router |kg-topology-CloudEOSEdge2|: flash:zerotouch-config file isDir state is |False| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_filesystem.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_files_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True} INFO root:test_filesystem.py:70 TEST is flash:startup-config file present on |kg-topology-CloudEOSEdge2| INFO root:test_filesystem.py:71 GIVEN expected flash:startup-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:startup-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)), 'name': 'kg-topology-CloudEOSEdge2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet2': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Vlan4093': {'lastStatusChangeTimestamp': 1597281921.9977484, 'name': 'Vlan4093', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vlan4094': {'lastStatusChangeTimestamp': 1597281727.435465, 'name': 'Vlan4094', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vxlan1': {'vniInDottedNotation': False, 'controllerClientMode': False, 'description': '', 'portDot1qVniMapping': False, 'mcastRouting': False, 'controllerControlPlane': False, 'srcIpIntf': 'Loopback0', 'vtepAddrMask': '255.255.255.255', 'hardware': 'vxlan', 'mcastGrpDecap': '', 'bandwidth': 0, 'use32BitVni': False, 'floodMcastGrp': '0.0.0.0', 'vlanToVniMap': {'4093': {'source': 'evpn', 'vni': 102}, '4094': {'source': 'evpn', 'vni': 101}}, 'vlanToVtepList': {}, 'arpReplyRelayMode': False, 'srcIpAddr': '11.201.0.3', 'dataPathLearningMode': False, 'interfaceAddress': [], 'vtepSourcePruningAll': False, 'mlagSharedRouterMacAddr': '00:00:00:00:00:00', 'staticFloodlists': False, 'vxlanEncapsulation': 'ipv4', 'name': 'Vxlan1', 'vccImportVlan': '4093-4094', 'replicationMode': 'headendNonVcs', 'vtepSetForSourcePruning': [], 'mtu': 0, 'interfaceStatus': 'connected', 'vtepToVtepBridging': False, 'l3MtuConfigured': False, 'vrfToVniMap': {'default': 101, 'prod': 102}, 'arpLocalAddress': False, 'vlanToLearnRestrict': {'4093': {'prefixList': [], 'learnFrom': 'learnFromAny'}, '4094': {'prefixList': [], 'learnFrom': 'learnFromAny'}}, 'lineProtocolStatus': 'up', 'forwardingModel': 'bridged'}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281563.0058818, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '06:35:02:ca:82:97', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463007.02756, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:35:02:ca:82:97', 'description': ''}, 'Ethernet2': {'lastStatusChangeTimestamp': 1597281560.647778, 'lanes': 0, 'name': 'Ethernet2', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:67:85:22:a7:80', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 94430.3288899368, 'inPktsRate': 61.04684459397749, 'outBitsRate': 51723.925929370955, 'updateInterval': 300.0, 'outPktsRate': 53.0584758275585}, 'mtu': 9000, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 118083820, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463007.02871, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 21305235270, 'outDiscards': 0, 'outOctets': 13260372096, 'inUcastPkts': 130337624, 'inTotalPkts': 130337624, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:67:85:22:a7:80', 'description': ''}, 'Ethernet2.102': {'lastStatusChangeTimestamp': 1597281923.226806, 'name': 'Ethernet2.102', 'interfaceStatus': 'connected', 'mtu': 9000, 'hardware': 'subinterface', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:67:85:22:a7:80', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281560.7664125, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:35:02:47:e5:30', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 63234.66021106836, 'inPktsRate': 64.44899758981173, 'outBitsRate': 143363.92775601812, 'updateInterval': 300.0, 'outPktsRate': 75.55618715457129}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 140872710, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463007.029901, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 14194433394, 'outDiscards': 0, 'outOctets': 29875711696, 'inUcastPkts': 119690374, 'inTotalPkts': 119690374, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:35:02:47:e5:30', 'description': ''}, 'Loopback0': {'lastStatusChangeTimestamp': 1597281723.3885176, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.3'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281539.3698244, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.37'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 63.2 kbps (- with framing overhead), 64 packets/sec\n 5 minutes output rate 143 kbps (- with framing overhead), 76 packets/sec\n 119690374 packets input, 14194433394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 140872710 packets output, 29875711696 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 94.4 kbps (- with framing overhead), 61 packets/sec\n 5 minutes output rate 51.7 kbps (- with framing overhead), 53 packets/sec\n 130337624 packets input, 21305235270 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 118083820 packets output, 13260372096 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 3 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 4 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 23 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 27 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 5 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 19 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge2', 'hostname': 'kg-topology-CloudEOSEdge2'}, 'text': 'Hostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 3181540.18, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DE52F26D16E91F22BB1B507175C8C765', 'systemMacAddress': '06:35:02:ca:82:97', 'bootupTimestamp': 1597281468.0, 'memFree': 2798412, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DE52F26D16E91F22BB1B507175C8C765\nSystem MAC address: 0635.02ca.8297\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2797412 kB\n\n'}, 'show processes': {'json': {'processes': {'2025': {'totalActiveTime': 3227620, 'memPct': 3.7, 'cpuPct': 101.0, 'startTime': 1597281547.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '16716': {'totalActiveTime': 46, 'memPct': 0.9, 'cpuPct': 4.2, 'startTime': 1600461907.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1675': {'totalActiveTime': 82053, 'memPct': 2.1, 'cpuPct': 2.5, 'startTime': 1597281532.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1476': {'totalActiveTime': 9919, 'memPct': 2.6, 'cpuPct': 0.3, 'startTime': 1597281508.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1518': {'totalActiveTime': 12006, 'memPct': 7.6, 'cpuPct': 0.3, 'startTime': 1597281511.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1243': {'totalActiveTime': 7876, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1951': {'totalActiveTime': 6739, 'memPct': 1.7, 'cpuPct': 0.2, 'startTime': 1597281544.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 4089, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281534.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1719': {'totalActiveTime': 3385, 'memPct': 1.2, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 6288, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1980': {'totalActiveTime': 4131, 'memPct': 2.3, 'cpuPct': 0.1, 'startTime': 1597281546.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '3369': {'totalActiveTime': 6158, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281726.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 472, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 32, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '378': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '410': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '746': {'totalActiveTime': 224, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 66, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '770': {'totalActiveTime': 343, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '784': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '790': {'totalActiveTime': 6, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '880': {'totalActiveTime': 21, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '889': {'totalActiveTime': 27, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '998': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1000': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1015': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1019': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1021': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1031': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1062': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281482.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1189': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1190': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1224': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1226': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1228': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1242': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1415': {'totalActiveTime': 748, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281507.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1423': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1438': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1475': {'totalActiveTime': 173, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1517': {'totalActiveTime': 379, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1521': {'totalActiveTime': 1340, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1524': {'totalActiveTime': 667, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281512.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1651': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1653': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1654': {'totalActiveTime': 1826, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1659': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1661': {'totalActiveTime': 1354, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1665': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1666': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1668': {'totalActiveTime': 1477, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1669': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1698': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1699': {'totalActiveTime': 1443, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1701': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1702': {'totalActiveTime': 2683, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1709': {'totalActiveTime': 1369, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1710': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 1617, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1716': {'totalActiveTime': 1786, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1723': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1724': {'totalActiveTime': 382, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1725': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1730': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1731': {'totalActiveTime': 620, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 1090, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1736': {'totalActiveTime': 1362, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1738': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1741': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1743': {'totalActiveTime': 3007, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1756': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1759': {'totalActiveTime': 2195, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 447, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1789': {'totalActiveTime': 1358, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 1371, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1823': {'totalActiveTime': 2032, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1843': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1846': {'totalActiveTime': 1366, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1851': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1855': {'totalActiveTime': 1538, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 448, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1857': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1861': {'totalActiveTime': 449, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1862': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 1358, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1867': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1868': {'totalActiveTime': 380, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1870': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1871': {'totalActiveTime': 380, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1877': {'totalActiveTime': 1748, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1891': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1893': {'totalActiveTime': 381, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 381, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 1376, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1944': {'totalActiveTime': 448, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1950': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1954': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1956': {'totalActiveTime': 458, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1958': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1959': {'totalActiveTime': 1373, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1962': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1963': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1968': {'totalActiveTime': 449, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2011': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2014': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2319': {'totalActiveTime': 34, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2592': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2596': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2597': {'totalActiveTime': 382, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2614': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2633': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 72, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2639': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2666': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281561.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2695': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2696': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2697': {'totalActiveTime': 2829, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2699': {'totalActiveTime': 2, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2726': {'totalActiveTime': 174, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281564.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2730': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281567.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3232': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3237': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3242': {'totalActiveTime': 3000, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3254': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3257': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3263': {'totalActiveTime': 1435, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3275': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3277': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3278': {'totalActiveTime': 1509, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3315': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3317': {'totalActiveTime': 226, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3856': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281920.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '3977': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281922.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '12089': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461001.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '16200': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461721.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '16674': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461906.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '19259': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462380.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '21869': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462740.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '22561': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600463007.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '26289': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '26290': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '26291': {'totalActiveTime': 407, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '26335': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '26337': {'totalActiveTime': 176, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3181540.7, 'loadAvg': [1.17, 1.28, 1.37], 'users': 0, 'currentTime': 1600463008.420829}}, 'text': " 21:03:28 up 36 days, 19:45, 0 users, load average: 1.17, 1.28, 1.37\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2025 101 3.7 ? Sl Aug 13 37-08:33:40 Sfe\n16716 4.2 0.9 ? SNl 20:45:07 00:00:46 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1675 2.5 2.1 ? Sl Aug 13 22:47:33 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1476 0.3 2.6 ? S Aug 13 02:45:19 Sysdb\n 1518 0.3 7.6 ? Sl Aug 13 03:20:06 ConfigAgent\n 1243 0.2 0.9 ? S Aug 13 02:11:16 ProcMgr-worker\n 1951 0.2 1.7 ? S Aug 13 01:52:19 IpRib\n 1703 0.1 1.7 ? S Aug 13 01:08:09 SuperServer\n 1719 0.1 1.2 ? S Aug 13 00:56:25 StpTxRx\n 1727 0.1 1.0 ? S Aug 13 01:44:48 AgentMonitor\n 1980 0.1 2.3 ? Sl Aug 13 01:08:51 Bgp\n 3369 0.1 1.4 ? S Aug 13 01:42:38 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:07:52 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:20 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:32 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:22 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 746 0.0 0.0 ? Ss Aug 13 00:03:44 /usr/lib/systemd/systemd-logind\n 752 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor\n 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 770 0.0 0.1 ? Ss Aug 13 00:05:43 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 790 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 880 0.0 0.0 ? Ss Aug 13 00:00:21 /usr/sbin/crond -n\n 889 0.0 0.0 ? S<s Aug 13 00:00:27 /usr/bin/wdogdev -t 60\n 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1415 0.0 0.0 ? S Aug 13 00:12:28 /usr/bin/EosOomAdjust\n 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu]\n 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1475 0.0 0.0 ? S Aug 13 00:02:53 /usr/bin/SlabMonitor\n 1517 0.0 1.2 ? S Aug 13 00:06:19 StageMgr\n 1521 0.0 1.4 ? S Aug 13 00:22:20 Fru\n 1524 0.0 1.8 ? S Aug 13 00:11:07 Launcher\n 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1654 0.0 1.3 ? S Aug 13 00:30:26 Lldp\n 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1661 0.0 1.2 ? S Aug 13 00:22:34 McastCommon\n 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1668 0.0 1.1 ? S Aug 13 00:24:37 PortSec\n 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1699 0.0 1.4 ? S Aug 13 00:24:03 Bfd\n 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1702 0.0 1.3 ? S Aug 13 00:44:43 Lag\n 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1709 0.0 1.5 ? S Aug 13 00:22:49 Ira\n 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:26:57 LedPolicy\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1716 0.0 1.3 ? S Aug 13 00:29:46 EventMgr\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1724 0.0 1.1 ? S Aug 13 00:06:22 StandbyCpld\n 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1731 0.0 1.2 ? S Aug 13 00:10:20 Tunnel\n 1732 0.0 1.6 ? Sl Aug 13 00:18:10 Aaa\n 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1736 0.0 1.2 ? S Aug 13 00:22:42 StpTopology\n 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1743 0.0 1.4 ? S Aug 13 00:50:07 Acl\n 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1759 0.0 1.1 ? S Aug 13 00:36:35 Stp\n 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.1 ? S Aug 13 00:07:27 KernelNetworkInfo\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1789 0.0 1.2 ? S Aug 13 00:22:38 McastCommon6\n 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.2 ? S Aug 13 00:22:51 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1823 0.0 1.5 ? S Aug 13 00:33:52 Arp\n 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1846 0.0 1.4 ? S Aug 13 00:22:46 KernelFib\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1855 0.0 1.2 ? S Aug 13 00:25:38 Qos\n 1856 0.0 1.1 ? S Aug 13 00:07:28 Thermostat\n 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1861 0.0 1.2 ? S Aug 13 00:07:29 L2Rib\n 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.2 ? S Aug 13 00:22:38 TopoAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1868 0.0 1.1 ? S Aug 13 00:06:20 PowerFuse\n 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1871 0.0 1.1 ? S Aug 13 00:06:20 PowerManager\n 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1877 0.0 1.4 ? S Aug 13 00:29:08 Ebra\n 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1893 0.0 1.1 ? S Aug 13 00:06:21 ReloadCauseAgent\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.1 ? S Aug 13 00:06:21 SharedSecretProfile\n 1905 0.0 1.5 ? S Aug 13 00:22:56 IgmpSnooping\n 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1944 0.0 1.3 ? S Aug 13 00:07:28 StaticRoute\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1956 0.0 1.9 ? S Aug 13 00:07:38 BgpCliHelper\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1959 0.0 1.3 ? S Aug 13 00:22:53 ConnectedRoute\n 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1968 0.0 1.3 ? S Aug 13 00:07:29 RouteInput\n 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2319 0.0 0.0 ? Ssl Aug 13 00:00:34 /usr/sbin/rsyslogd -n\n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2597 0.0 1.1 ? S Aug 13 00:06:22 LicenseManager\n 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2638 0.0 0.0 ? S Aug 13 00:01:12 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console\n 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2697 0.0 1.2 ? S Aug 13 00:47:09 Ipsec\n 2699 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2726 0.0 0.1 ? Ssl Aug 13 00:02:54 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3242 0.0 1.2 ? S Aug 13 00:50:00 Nat\n 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3263 0.0 1.4 ? S Aug 13 00:23:55 Vxlan\n 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3278 0.0 1.4 ? S Aug 13 00:25:09 VxlanSwFwd\n 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3317 0.0 0.1 ? Ssl Aug 13 00:03:46 /usr/libexec/strongswan/charon --use-syslog\n 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0]\n 3977 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq\n12089 0.0 0.0 ? S 20:30:01 00:00:00 [kworker/0:4]\n16200 0.0 0.0 ? S 20:42:01 00:00:00 [kworker/0:0]\n16674 0.0 0.0 ? S 20:45:06 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n19259 0.0 0.0 ? S 20:53:00 00:00:00 [kworker/0:2]\n21869 0.0 0.0 ? S 20:59:00 00:00:00 [kworker/0:1]\n22577 0.0 0.0 ? Rs 21:03:28 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26291 0.0 1.3 ? Sl Aug 26 00:06:47 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n26337 0.0 0.1 ? S Aug 26 00:02:56 nginx: worker process \n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet2': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 132678, 'authorizationAllowed': 2824, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 2, 'authenticationUnavailable': 159, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 132679\n Failed: 2\n Service unavailable: 159\n\nAuthorization\n Allowed: 2824\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'134244': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600462995, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n134244 kgrozis command-api E 0:00:15 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 29, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 29 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.171, 'jitter': 0.657, 'lastReceived': 1600461981.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': -0.149, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 0 1024 377 0.151 -0.235 0.688\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281533.6882432, 'pid': 1675, 'enabled': True, 'uptime': 3181480.32, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1675)\nUptime: 36 days, 19:44:40 (Start time: Thu Aug 13 01:18:53 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291584512 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291584512 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 122296, 'bytesOut': 344122222, 'lastHitTime': 1600463016.0097427, 'bytesIn': 19684310}}, 'bytesOut': 344122222, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 129159, 'vrf': 'default', 'lastHitTime': 1600463016.0096953, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 13525.059625684022, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 122296, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.15.101:443', 'Ethernet2 : https://11.201.15.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.3:443', 'Loopback10 : https://198.18.0.37:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 19684310, 'commandCount': 244592, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 129163\nLast hit: 0 seconds ago\nBytes in: 19684972\nBytes out: 344123898\nRequests: 122300\nCommands: 244600\nDuration: 13525.173 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 122300 19684972 344123898 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.15.101:443 \nEthernet2 : https://11.201.15.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.3:443 \nLoopback10 : https://198.18.0.37:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:27:39 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:28:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:29 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:50 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:55 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:51:05 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:51:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:14 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:54 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:27:39 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:28:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:29 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:50 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:55 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:51:05 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:51:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:14 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:54 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:startup-config with connnection Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:startup-config on dut kg-topology-CloudEOSEdge2: [{'command': 'show file information flash:startup-config', 'result': {'isDir': False, 'path': 'flash:/startup-config', 'fileName': '/mnt/flash/startup-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:startup-config on dut kg-topology-CloudEOSEdge2: [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/startup-config: type is file INFO root:test_filesystem.py:80 WHEN flash:startup-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:startup-config| is : [{'output': 'flash:/startup-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:veos-config file present on |kg-topology-CloudEOSEdge2| INFO root:test_filesystem.py:71 GIVEN expected flash:veos-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:veos-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)), 'name': 'kg-topology-CloudEOSEdge2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet2': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Vlan4093': {'lastStatusChangeTimestamp': 1597281921.9977484, 'name': 'Vlan4093', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vlan4094': {'lastStatusChangeTimestamp': 1597281727.435465, 'name': 'Vlan4094', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vxlan1': {'vniInDottedNotation': False, 'controllerClientMode': False, 'description': '', 'portDot1qVniMapping': False, 'mcastRouting': False, 'controllerControlPlane': False, 'srcIpIntf': 'Loopback0', 'vtepAddrMask': '255.255.255.255', 'hardware': 'vxlan', 'mcastGrpDecap': '', 'bandwidth': 0, 'use32BitVni': False, 'floodMcastGrp': '0.0.0.0', 'vlanToVniMap': {'4093': {'source': 'evpn', 'vni': 102}, '4094': {'source': 'evpn', 'vni': 101}}, 'vlanToVtepList': {}, 'arpReplyRelayMode': False, 'srcIpAddr': '11.201.0.3', 'dataPathLearningMode': False, 'interfaceAddress': [], 'vtepSourcePruningAll': False, 'mlagSharedRouterMacAddr': '00:00:00:00:00:00', 'staticFloodlists': False, 'vxlanEncapsulation': 'ipv4', 'name': 'Vxlan1', 'vccImportVlan': '4093-4094', 'replicationMode': 'headendNonVcs', 'vtepSetForSourcePruning': [], 'mtu': 0, 'interfaceStatus': 'connected', 'vtepToVtepBridging': False, 'l3MtuConfigured': False, 'vrfToVniMap': {'default': 101, 'prod': 102}, 'arpLocalAddress': False, 'vlanToLearnRestrict': {'4093': {'prefixList': [], 'learnFrom': 'learnFromAny'}, '4094': {'prefixList': [], 'learnFrom': 'learnFromAny'}}, 'lineProtocolStatus': 'up', 'forwardingModel': 'bridged'}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281563.0058818, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '06:35:02:ca:82:97', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463007.02756, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:35:02:ca:82:97', 'description': ''}, 'Ethernet2': {'lastStatusChangeTimestamp': 1597281560.647778, 'lanes': 0, 'name': 'Ethernet2', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:67:85:22:a7:80', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 94430.3288899368, 'inPktsRate': 61.04684459397749, 'outBitsRate': 51723.925929370955, 'updateInterval': 300.0, 'outPktsRate': 53.0584758275585}, 'mtu': 9000, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 118083820, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463007.02871, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 21305235270, 'outDiscards': 0, 'outOctets': 13260372096, 'inUcastPkts': 130337624, 'inTotalPkts': 130337624, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:67:85:22:a7:80', 'description': ''}, 'Ethernet2.102': {'lastStatusChangeTimestamp': 1597281923.226806, 'name': 'Ethernet2.102', 'interfaceStatus': 'connected', 'mtu': 9000, 'hardware': 'subinterface', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:67:85:22:a7:80', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281560.7664125, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:35:02:47:e5:30', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 63234.66021106836, 'inPktsRate': 64.44899758981173, 'outBitsRate': 143363.92775601812, 'updateInterval': 300.0, 'outPktsRate': 75.55618715457129}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 140872710, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463007.029901, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 14194433394, 'outDiscards': 0, 'outOctets': 29875711696, 'inUcastPkts': 119690374, 'inTotalPkts': 119690374, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:35:02:47:e5:30', 'description': ''}, 'Loopback0': {'lastStatusChangeTimestamp': 1597281723.3885176, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.3'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281539.3698244, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.37'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 63.2 kbps (- with framing overhead), 64 packets/sec\n 5 minutes output rate 143 kbps (- with framing overhead), 76 packets/sec\n 119690374 packets input, 14194433394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 140872710 packets output, 29875711696 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 94.4 kbps (- with framing overhead), 61 packets/sec\n 5 minutes output rate 51.7 kbps (- with framing overhead), 53 packets/sec\n 130337624 packets input, 21305235270 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 118083820 packets output, 13260372096 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 3 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 4 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 23 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 27 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 5 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 19 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge2', 'hostname': 'kg-topology-CloudEOSEdge2'}, 'text': 'Hostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 3181540.18, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DE52F26D16E91F22BB1B507175C8C765', 'systemMacAddress': '06:35:02:ca:82:97', 'bootupTimestamp': 1597281468.0, 'memFree': 2798412, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DE52F26D16E91F22BB1B507175C8C765\nSystem MAC address: 0635.02ca.8297\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2797412 kB\n\n'}, 'show processes': {'json': {'processes': {'2025': {'totalActiveTime': 3227620, 'memPct': 3.7, 'cpuPct': 101.0, 'startTime': 1597281547.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '16716': {'totalActiveTime': 46, 'memPct': 0.9, 'cpuPct': 4.2, 'startTime': 1600461907.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1675': {'totalActiveTime': 82053, 'memPct': 2.1, 'cpuPct': 2.5, 'startTime': 1597281532.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1476': {'totalActiveTime': 9919, 'memPct': 2.6, 'cpuPct': 0.3, 'startTime': 1597281508.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1518': {'totalActiveTime': 12006, 'memPct': 7.6, 'cpuPct': 0.3, 'startTime': 1597281511.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1243': {'totalActiveTime': 7876, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1951': {'totalActiveTime': 6739, 'memPct': 1.7, 'cpuPct': 0.2, 'startTime': 1597281544.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 4089, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281534.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1719': {'totalActiveTime': 3385, 'memPct': 1.2, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 6288, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1980': {'totalActiveTime': 4131, 'memPct': 2.3, 'cpuPct': 0.1, 'startTime': 1597281546.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '3369': {'totalActiveTime': 6158, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281726.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 472, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 32, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '378': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '410': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '746': {'totalActiveTime': 224, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 66, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '770': {'totalActiveTime': 343, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '784': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '790': {'totalActiveTime': 6, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '880': {'totalActiveTime': 21, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '889': {'totalActiveTime': 27, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '998': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1000': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1015': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1019': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1021': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1031': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1062': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281482.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1189': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1190': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1224': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1226': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1228': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1242': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1415': {'totalActiveTime': 748, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281507.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1423': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1438': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1475': {'totalActiveTime': 173, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1517': {'totalActiveTime': 379, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1521': {'totalActiveTime': 1340, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1524': {'totalActiveTime': 667, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281512.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1651': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1653': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1654': {'totalActiveTime': 1826, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1659': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1661': {'totalActiveTime': 1354, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1665': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1666': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1668': {'totalActiveTime': 1477, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1669': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1698': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1699': {'totalActiveTime': 1443, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1701': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1702': {'totalActiveTime': 2683, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1709': {'totalActiveTime': 1369, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1710': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 1617, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1716': {'totalActiveTime': 1786, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1723': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1724': {'totalActiveTime': 382, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1725': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1730': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1731': {'totalActiveTime': 620, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 1090, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1736': {'totalActiveTime': 1362, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1738': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1741': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1743': {'totalActiveTime': 3007, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1756': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1759': {'totalActiveTime': 2195, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 447, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1789': {'totalActiveTime': 1358, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 1371, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1823': {'totalActiveTime': 2032, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1843': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1846': {'totalActiveTime': 1366, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1851': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1855': {'totalActiveTime': 1538, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 448, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1857': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1861': {'totalActiveTime': 449, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1862': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 1358, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1867': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1868': {'totalActiveTime': 380, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1870': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1871': {'totalActiveTime': 380, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1877': {'totalActiveTime': 1748, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1891': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1893': {'totalActiveTime': 381, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 381, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 1376, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1944': {'totalActiveTime': 448, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1950': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1954': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1956': {'totalActiveTime': 458, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1958': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1959': {'totalActiveTime': 1373, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1962': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1963': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1968': {'totalActiveTime': 449, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2011': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2014': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2319': {'totalActiveTime': 34, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2592': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2596': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2597': {'totalActiveTime': 382, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2614': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2633': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 72, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2639': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2666': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281561.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2695': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2696': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2697': {'totalActiveTime': 2829, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2699': {'totalActiveTime': 2, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2726': {'totalActiveTime': 174, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281564.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2730': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281567.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3232': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3237': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3242': {'totalActiveTime': 3000, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3254': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3257': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3263': {'totalActiveTime': 1435, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3275': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3277': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3278': {'totalActiveTime': 1509, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3315': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3317': {'totalActiveTime': 226, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3856': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281920.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '3977': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281922.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '12089': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461001.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '16200': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461721.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '16674': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461906.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '19259': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462380.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '21869': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462740.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '22561': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600463007.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '26289': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '26290': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '26291': {'totalActiveTime': 407, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '26335': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '26337': {'totalActiveTime': 176, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3181540.7, 'loadAvg': [1.17, 1.28, 1.37], 'users': 0, 'currentTime': 1600463008.420829}}, 'text': " 21:03:28 up 36 days, 19:45, 0 users, load average: 1.17, 1.28, 1.37\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2025 101 3.7 ? Sl Aug 13 37-08:33:40 Sfe\n16716 4.2 0.9 ? SNl 20:45:07 00:00:46 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1675 2.5 2.1 ? Sl Aug 13 22:47:33 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1476 0.3 2.6 ? S Aug 13 02:45:19 Sysdb\n 1518 0.3 7.6 ? Sl Aug 13 03:20:06 ConfigAgent\n 1243 0.2 0.9 ? S Aug 13 02:11:16 ProcMgr-worker\n 1951 0.2 1.7 ? S Aug 13 01:52:19 IpRib\n 1703 0.1 1.7 ? S Aug 13 01:08:09 SuperServer\n 1719 0.1 1.2 ? S Aug 13 00:56:25 StpTxRx\n 1727 0.1 1.0 ? S Aug 13 01:44:48 AgentMonitor\n 1980 0.1 2.3 ? Sl Aug 13 01:08:51 Bgp\n 3369 0.1 1.4 ? S Aug 13 01:42:38 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:07:52 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:20 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:32 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:22 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 746 0.0 0.0 ? Ss Aug 13 00:03:44 /usr/lib/systemd/systemd-logind\n 752 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor\n 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 770 0.0 0.1 ? Ss Aug 13 00:05:43 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 790 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 880 0.0 0.0 ? Ss Aug 13 00:00:21 /usr/sbin/crond -n\n 889 0.0 0.0 ? S<s Aug 13 00:00:27 /usr/bin/wdogdev -t 60\n 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1415 0.0 0.0 ? S Aug 13 00:12:28 /usr/bin/EosOomAdjust\n 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu]\n 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1475 0.0 0.0 ? S Aug 13 00:02:53 /usr/bin/SlabMonitor\n 1517 0.0 1.2 ? S Aug 13 00:06:19 StageMgr\n 1521 0.0 1.4 ? S Aug 13 00:22:20 Fru\n 1524 0.0 1.8 ? S Aug 13 00:11:07 Launcher\n 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1654 0.0 1.3 ? S Aug 13 00:30:26 Lldp\n 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1661 0.0 1.2 ? S Aug 13 00:22:34 McastCommon\n 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1668 0.0 1.1 ? S Aug 13 00:24:37 PortSec\n 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1699 0.0 1.4 ? S Aug 13 00:24:03 Bfd\n 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1702 0.0 1.3 ? S Aug 13 00:44:43 Lag\n 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1709 0.0 1.5 ? S Aug 13 00:22:49 Ira\n 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:26:57 LedPolicy\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1716 0.0 1.3 ? S Aug 13 00:29:46 EventMgr\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1724 0.0 1.1 ? S Aug 13 00:06:22 StandbyCpld\n 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1731 0.0 1.2 ? S Aug 13 00:10:20 Tunnel\n 1732 0.0 1.6 ? Sl Aug 13 00:18:10 Aaa\n 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1736 0.0 1.2 ? S Aug 13 00:22:42 StpTopology\n 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1743 0.0 1.4 ? S Aug 13 00:50:07 Acl\n 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1759 0.0 1.1 ? S Aug 13 00:36:35 Stp\n 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.1 ? S Aug 13 00:07:27 KernelNetworkInfo\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1789 0.0 1.2 ? S Aug 13 00:22:38 McastCommon6\n 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.2 ? S Aug 13 00:22:51 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1823 0.0 1.5 ? S Aug 13 00:33:52 Arp\n 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1846 0.0 1.4 ? S Aug 13 00:22:46 KernelFib\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1855 0.0 1.2 ? S Aug 13 00:25:38 Qos\n 1856 0.0 1.1 ? S Aug 13 00:07:28 Thermostat\n 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1861 0.0 1.2 ? S Aug 13 00:07:29 L2Rib\n 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.2 ? S Aug 13 00:22:38 TopoAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1868 0.0 1.1 ? S Aug 13 00:06:20 PowerFuse\n 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1871 0.0 1.1 ? S Aug 13 00:06:20 PowerManager\n 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1877 0.0 1.4 ? S Aug 13 00:29:08 Ebra\n 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1893 0.0 1.1 ? S Aug 13 00:06:21 ReloadCauseAgent\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.1 ? S Aug 13 00:06:21 SharedSecretProfile\n 1905 0.0 1.5 ? S Aug 13 00:22:56 IgmpSnooping\n 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1944 0.0 1.3 ? S Aug 13 00:07:28 StaticRoute\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1956 0.0 1.9 ? S Aug 13 00:07:38 BgpCliHelper\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1959 0.0 1.3 ? S Aug 13 00:22:53 ConnectedRoute\n 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1968 0.0 1.3 ? S Aug 13 00:07:29 RouteInput\n 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2319 0.0 0.0 ? Ssl Aug 13 00:00:34 /usr/sbin/rsyslogd -n\n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2597 0.0 1.1 ? S Aug 13 00:06:22 LicenseManager\n 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2638 0.0 0.0 ? S Aug 13 00:01:12 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console\n 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2697 0.0 1.2 ? S Aug 13 00:47:09 Ipsec\n 2699 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2726 0.0 0.1 ? Ssl Aug 13 00:02:54 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3242 0.0 1.2 ? S Aug 13 00:50:00 Nat\n 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3263 0.0 1.4 ? S Aug 13 00:23:55 Vxlan\n 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3278 0.0 1.4 ? S Aug 13 00:25:09 VxlanSwFwd\n 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3317 0.0 0.1 ? Ssl Aug 13 00:03:46 /usr/libexec/strongswan/charon --use-syslog\n 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0]\n 3977 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq\n12089 0.0 0.0 ? S 20:30:01 00:00:00 [kworker/0:4]\n16200 0.0 0.0 ? S 20:42:01 00:00:00 [kworker/0:0]\n16674 0.0 0.0 ? S 20:45:06 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n19259 0.0 0.0 ? S 20:53:00 00:00:00 [kworker/0:2]\n21869 0.0 0.0 ? S 20:59:00 00:00:00 [kworker/0:1]\n22577 0.0 0.0 ? Rs 21:03:28 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26291 0.0 1.3 ? Sl Aug 26 00:06:47 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n26337 0.0 0.1 ? S Aug 26 00:02:56 nginx: worker process \n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet2': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 132678, 'authorizationAllowed': 2824, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 2, 'authenticationUnavailable': 159, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 132679\n Failed: 2\n Service unavailable: 159\n\nAuthorization\n Allowed: 2824\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'134244': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600462995, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n134244 kgrozis command-api E 0:00:15 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 29, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 29 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.171, 'jitter': 0.657, 'lastReceived': 1600461981.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': -0.149, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 0 1024 377 0.151 -0.235 0.688\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281533.6882432, 'pid': 1675, 'enabled': True, 'uptime': 3181480.32, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1675)\nUptime: 36 days, 19:44:40 (Start time: Thu Aug 13 01:18:53 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291584512 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291584512 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 122296, 'bytesOut': 344122222, 'lastHitTime': 1600463016.0097427, 'bytesIn': 19684310}}, 'bytesOut': 344122222, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 129159, 'vrf': 'default', 'lastHitTime': 1600463016.0096953, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 13525.059625684022, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 122296, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.15.101:443', 'Ethernet2 : https://11.201.15.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.3:443', 'Loopback10 : https://198.18.0.37:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 19684310, 'commandCount': 244592, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 129163\nLast hit: 0 seconds ago\nBytes in: 19684972\nBytes out: 344123898\nRequests: 122300\nCommands: 244600\nDuration: 13525.173 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 122300 19684972 344123898 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.15.101:443 \nEthernet2 : https://11.201.15.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.3:443 \nLoopback10 : https://198.18.0.37:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:27:39 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:28:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:29 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:50 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:55 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:51:05 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:51:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:14 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:54 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:27:39 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:28:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:29 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:50 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:55 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:51:05 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:51:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:14 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:54 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:veos-config with connnection Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:veos-config on dut kg-topology-CloudEOSEdge2: [{'command': 'show file information flash:veos-config', 'result': {'isDir': False, 'path': 'flash:/veos-config', 'fileName': '/mnt/flash/veos-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:veos-config on dut kg-topology-CloudEOSEdge2: [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/veos-config: type is file INFO root:test_filesystem.py:80 WHEN flash:veos-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:veos-config| is : [{'output': 'flash:/veos-config:\n type is file\n'}] INFO root:test_filesystem.py:70 TEST is flash:zerotouch-config file present on |kg-topology-CloudEOSEdge2| INFO root:test_filesystem.py:71 GIVEN expected flash:zerotouch-config isDir state: |False| INFO root:tests_tools.py:252 Raw Input for return_show_cmd show_cmd: show file information flash:zerotouch-config dut: {'connection': Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)), 'name': 'kg-topology-CloudEOSEdge2', 'output': {'interface_list': [{'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet1', 'z_hostname': 'spine01', 'z_interface_name': 'Ethernet2', 'media_type': ''}, {'hostname': 'kg-topology-CloudEOSEdge2', 'interface_name': 'Ethernet2', 'z_hostname': 'leaf01', 'z_interface_name': 'Ethernet2', 'media_type': ''}], 'show interfaces status': {'json': {'interfaceStatuses': {'Ethernet2.102': {'vlanInformation': {'interfaceMode': 'encap', 'vlanId': 102, 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': 'dot1q-encapsulation', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'encapsulation': {'encapsulationType': 'dot1q', 'dot1qVlanTags': [102]}, 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet2': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet100': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 10000000000, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}, 'Ethernet1': {'vlanInformation': {'interfaceMode': 'routed', 'interfaceForwardingModel': 'routed'}, 'bandwidth': 0, 'interfaceType': '10/100/1000', 'description': '', 'autoNegotiateActive': False, 'duplex': 'duplexFull', 'autoNegotigateActive': False, 'linkStatus': 'connected', 'lineProtocolStatus': 'up'}}}, 'text': 'Port Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n'}, 'show interfaces phy detail': {'json': {'interfacePhyStatuses': {}}, 'text': ''}, 'show interfaces counters errors': {'json': {'interfaceErrorCounters': {'Ethernet2': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet100': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}, 'Ethernet1': {'inErrors': 0, 'frameTooLongs': 0, 'outErrors': 0, 'frameTooShorts': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'symbolErrors': 0}}}, 'text': 'Port FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n'}, 'show interfaces counters discards': {'json': {'inDiscardsTotal': 0, 'interfaces': {'Ethernet2': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet100': {'outDiscards': 0, 'inDiscards': 0}, 'Ethernet1': {'outDiscards': 0, 'inDiscards': 0}}, 'outDiscardsTotal': 0}, 'text': 'Port InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n'}, 'show interfaces': {'json': {'interfaces': {'Vlan4093': {'lastStatusChangeTimestamp': 1597281921.9977484, 'name': 'Vlan4093', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vlan4094': {'lastStatusChangeTimestamp': 1597281727.435465, 'name': 'Vlan4094', 'interfaceStatus': 'notconnect', 'burnedInAddress': '00:00:00:00:00:00', 'mtu': 9164, 'hardware': 'vlan', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'lowerLayerDown', 'l3MtuConfigured': False, 'interfaceAddress': [], 'physicalAddress': '00:00:00:00:00:00', 'description': ''}, 'Vxlan1': {'vniInDottedNotation': False, 'controllerClientMode': False, 'description': '', 'portDot1qVniMapping': False, 'mcastRouting': False, 'controllerControlPlane': False, 'srcIpIntf': 'Loopback0', 'vtepAddrMask': '255.255.255.255', 'hardware': 'vxlan', 'mcastGrpDecap': '', 'bandwidth': 0, 'use32BitVni': False, 'floodMcastGrp': '0.0.0.0', 'vlanToVniMap': {'4093': {'source': 'evpn', 'vni': 102}, '4094': {'source': 'evpn', 'vni': 101}}, 'vlanToVtepList': {}, 'arpReplyRelayMode': False, 'srcIpAddr': '11.201.0.3', 'dataPathLearningMode': False, 'interfaceAddress': [], 'vtepSourcePruningAll': False, 'mlagSharedRouterMacAddr': '00:00:00:00:00:00', 'staticFloodlists': False, 'vxlanEncapsulation': 'ipv4', 'name': 'Vxlan1', 'vccImportVlan': '4093-4094', 'replicationMode': 'headendNonVcs', 'vtepSetForSourcePruning': [], 'mtu': 0, 'interfaceStatus': 'connected', 'vtepToVtepBridging': False, 'l3MtuConfigured': False, 'vrfToVniMap': {'default': 101, 'prod': 102}, 'arpLocalAddress': False, 'vlanToLearnRestrict': {'4093': {'prefixList': [], 'learnFrom': 'learnFromAny'}, '4094': {'prefixList': [], 'learnFrom': 'learnFromAny'}}, 'lineProtocolStatus': 'up', 'forwardingModel': 'bridged'}, 'Ethernet100': {'lastStatusChangeTimestamp': 1597281563.0058818, 'lanes': 0, 'name': 'Ethernet100', 'interfaceStatus': 'connected', 'autoNegotiate': 'off', 'burnedInAddress': '06:35:02:ca:82:97', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 0.0, 'inPktsRate': 0.0, 'outBitsRate': 0.0, 'updateInterval': 300.0, 'outPktsRate': 0.0}, 'mtu': 1400, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 10000000000, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 0, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463007.02756, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 0, 'outDiscards': 0, 'outOctets': 0, 'inUcastPkts': 0, 'inTotalPkts': 0, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 22, 'address': '11.201.8.1'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:35:02:ca:82:97', 'description': ''}, 'Ethernet2': {'lastStatusChangeTimestamp': 1597281560.647778, 'lanes': 0, 'name': 'Ethernet2', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:67:85:22:a7:80', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 94430.3288899368, 'inPktsRate': 61.04684459397749, 'outBitsRate': 51723.925929370955, 'updateInterval': 300.0, 'outPktsRate': 53.0584758275585}, 'mtu': 9000, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': True, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 118083820, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463007.02871, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 21305235270, 'outDiscards': 0, 'outOctets': 13260372096, 'inUcastPkts': 130337624, 'inTotalPkts': 130337624, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:67:85:22:a7:80', 'description': ''}, 'Ethernet2.102': {'lastStatusChangeTimestamp': 1597281923.226806, 'name': 'Ethernet2.102', 'interfaceStatus': 'connected', 'mtu': 9000, 'hardware': 'subinterface', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.201'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:67:85:22:a7:80', 'description': ''}, 'Ethernet1': {'lastStatusChangeTimestamp': 1597281560.7664125, 'lanes': 0, 'name': 'Ethernet1', 'interfaceStatus': 'connected', 'autoNegotiate': 'unknown', 'burnedInAddress': '06:35:02:47:e5:30', 'loopbackMode': 'loopbackNone', 'interfaceStatistics': {'inBitsRate': 63234.66021106836, 'inPktsRate': 64.44899758981173, 'outBitsRate': 143363.92775601812, 'updateInterval': 300.0, 'outPktsRate': 75.55618715457129}, 'mtu': 1500, 'hardware': 'ethernet', 'duplex': 'duplexFull', 'bandwidth': 0, 'forwardingModel': 'routed', 'lineProtocolStatus': 'up', 'l3MtuConfigured': False, 'interfaceCounters': {'outBroadcastPkts': 0, 'outUcastPkts': 140872710, 'totalOutErrors': 0, 'inMulticastPkts': 0, 'counterRefreshTime': 1600463007.029901, 'inBroadcastPkts': 0, 'outputErrorsDetail': {'deferredTransmissions': 0, 'txPause': 0, 'collisions': 0, 'lateCollisions': 0}, 'inOctets': 14194433394, 'outDiscards': 0, 'outOctets': 29875711696, 'inUcastPkts': 119690374, 'inTotalPkts': 119690374, 'inputErrorsDetail': {'runtFrames': 0, 'rxPause': 0, 'fcsErrors': 0, 'alignmentErrors': 0, 'giantFrames': 0, 'symbolErrors': 0}, 'linkStatusChanges': 3, 'outMulticastPkts': 0, 'totalInErrors': 0, 'inDiscards': 0}, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': True, 'secondaryIps': {}, 'primaryIp': {'maskLen': 25, 'address': '11.201.15.101'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'physicalAddress': '06:35:02:47:e5:30', 'description': ''}, 'Loopback0': {'lastStatusChangeTimestamp': 1597281723.3885176, 'name': 'Loopback0', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 32, 'address': '11.201.0.3'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}, 'Loopback10': {'lastStatusChangeTimestamp': 1597281539.3698244, 'name': 'Loopback10', 'interfaceStatus': 'connected', 'mtu': 65535, 'hardware': 'loopback', 'bandwidth': 0, 'forwardingModel': 'routed', 'l3MtuConfigured': False, 'interfaceAddress': [{'secondaryIpsOrderedList': [], 'broadcastAddress': '255.255.255.255', 'virtualSecondaryIps': {}, 'dhcp': False, 'secondaryIps': {}, 'primaryIp': {'maskLen': 24, 'address': '198.18.0.37'}, 'virtualSecondaryIpsOrderedList': [], 'virtualIp': {'maskLen': 0, 'address': '0.0.0.0'}}], 'lineProtocolStatus': 'up', 'description': ''}}}, 'text': 'Ethernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 63.2 kbps (- with framing overhead), 64 packets/sec\n 5 minutes output rate 143 kbps (- with framing overhead), 76 packets/sec\n 119690374 packets input, 14194433394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 140872710 packets output, 29875711696 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 94.4 kbps (- with framing overhead), 61 packets/sec\n 5 minutes output rate 51.7 kbps (- with framing overhead), 53 packets/sec\n 130337624 packets input, 21305235270 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 118083820 packets output, 13260372096 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 3 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 4 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 23 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 27 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 5 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 19 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n'}, 'show hostname': {'json': {'fqdn': 'kg-topology-CloudEOSEdge2', 'hostname': 'kg-topology-CloudEOSEdge2'}, 'text': 'Hostname: kg-topology-CloudEOSEdge2\nFQDN: kg-topology-CloudEOSEdge2\n'}, 'show extensions': {'json': {'extensions': {'awslogs.swix': {'status': 'installed', 'vendor': 'Amazon <UNKNOWN>', 'description': ' awsclicwlogs This awscli plugin provides the pull, push and filter commands to\naccess AWS CloudWatch Logs service. The awsclicwlogs package works on Python\nversions:* 2.6.5 and greater * 2.7.x and greater * 3.3.x and greater\nInstallation The easiest way to install awsclicwlogs is to use pip_:: $ pip\ninstall awsclicwlogsor, if you are not installing in a virtualenv:: $ sudo pip\ninstall ...', 'presence': 'present', 'rpms': {'awslogs.noarch.rpm': {'release': '1.el7', 'version': '1.4.0'}}, 'summary': 'AWSCLI CloudWatch Logs plugin', 'version': '1.4.0', 'numRpms': 1, 'error': False, 'release': '1.el7', 'installedSize': 23414055}, 'awsha.rpm': {'status': 'installed', 'vendor': '', 'description': 'Aws HA', 'presence': 'present', 'rpms': {'awsha.rpm': {'release': '1', 'version': '0.1.1'}}, 'summary': 'Aws HA', 'version': '0.1.1', 'numRpms': 1, 'error': False, 'release': '1', 'installedSize': 10073042}}}, 'text': 'Name Version/Release Status Extension\n----------------- -------------------- ----------- ---------\nawsha.rpm 0.1.1/1 A, I 1 \nawslogs.swix 1.4.0/1.el7 A, I 1 \n\n\nA: available | NA: not available | I: installed | NI: not installed | F: forced\nS: valid signature | NS: invalid signature\n'}, 'show version': {'json': {'memTotal': 7761392, 'uptime': 3181540.18, 'modelName': 'vEOS', 'internalVersion': '4.23.1F-cloud-16179785.jakartarel', 'mfgName': 'Arista', 'serialNumber': 'DE52F26D16E91F22BB1B507175C8C765', 'systemMacAddress': '06:35:02:ca:82:97', 'bootupTimestamp': 1597281468.0, 'memFree': 2798412, 'version': '4.23.1F-cloud-16179785.jakartarel (engineering build)', 'configMacAddress': '00:00:00:00:00:00', 'isIntlVersion': False, 'internalBuildId': '6bc96200-86c1-4e86-bed7-8280a6802809', 'hardwareRevision': '', 'hwMacAddress': '00:00:00:00:00:00', 'architecture': 'x86_64'}, 'text': 'Arista vEOS\nHardware version: \nSerial number: DE52F26D16E91F22BB1B507175C8C765\nSystem MAC address: 0635.02ca.8297\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2797412 kB\n\n'}, 'show processes': {'json': {'processes': {'2025': {'totalActiveTime': 3227620, 'memPct': 3.7, 'cpuPct': 101.0, 'startTime': 1597281547.0, 'cmd': 'Sfe', 'state': 'Sl', 'ttyName': '?'}, '16716': {'totalActiveTime': 46, 'memPct': 0.9, 'cpuPct': 4.2, 'startTime': 1600461907.0, 'cmd': 'python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config', 'state': 'SNl', 'ttyName': '?'}, '1675': {'totalActiveTime': 82053, 'memPct': 2.1, 'cpuPct': 2.5, 'startTime': 1597281532.0, 'cmd': '/usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042', 'state': 'Sl', 'ttyName': '?'}, '1476': {'totalActiveTime': 9919, 'memPct': 2.6, 'cpuPct': 0.3, 'startTime': 1597281508.0, 'cmd': 'Sysdb', 'state': 'S', 'ttyName': '?'}, '1518': {'totalActiveTime': 12006, 'memPct': 7.6, 'cpuPct': 0.3, 'startTime': 1597281511.0, 'cmd': 'ConfigAgent', 'state': 'Sl', 'ttyName': '?'}, '1243': {'totalActiveTime': 7876, 'memPct': 0.9, 'cpuPct': 0.2, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-worker', 'state': 'S', 'ttyName': '?'}, '1951': {'totalActiveTime': 6739, 'memPct': 1.7, 'cpuPct': 0.2, 'startTime': 1597281544.0, 'cmd': 'IpRib', 'state': 'S', 'ttyName': '?'}, '1703': {'totalActiveTime': 4089, 'memPct': 1.7, 'cpuPct': 0.1, 'startTime': 1597281534.0, 'cmd': 'SuperServer', 'state': 'S', 'ttyName': '?'}, '1719': {'totalActiveTime': 3385, 'memPct': 1.2, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'StpTxRx', 'state': 'S', 'ttyName': '?'}, '1727': {'totalActiveTime': 6288, 'memPct': 1.0, 'cpuPct': 0.1, 'startTime': 1597281536.0, 'cmd': 'AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1980': {'totalActiveTime': 4131, 'memPct': 2.3, 'cpuPct': 0.1, 'startTime': 1597281546.0, 'cmd': 'Bgp', 'state': 'Sl', 'ttyName': '?'}, '3369': {'totalActiveTime': 6158, 'memPct': 1.4, 'cpuPct': 0.1, 'startTime': 1597281726.0, 'cmd': 'Fhrp', 'state': 'S', 'ttyName': '?'}, '1': {'totalActiveTime': 472, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '/sbin/init', 'state': 'Ss', 'ttyName': '?'}, '2': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kthreadd]', 'state': 'S', 'ttyName': '?'}, '3': {'totalActiveTime': 20, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/0]', 'state': 'S', 'ttyName': '?'}, '5': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/0:0H]', 'state': 'S<', 'ttyName': '?'}, '7': {'totalActiveTime': 32, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_preempt]', 'state': 'S', 'ttyName': '?'}, '8': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_sched]', 'state': 'S', 'ttyName': '?'}, '9': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rcu_bh]', 'state': 'S', 'ttyName': '?'}, '10': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/0]', 'state': 'S', 'ttyName': '?'}, '11': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[lru-add-drain]', 'state': 'S<', 'ttyName': '?'}, '12': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/0]', 'state': 'S', 'ttyName': '?'}, '13': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/0]', 'state': 'S', 'ttyName': '?'}, '14': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/1]', 'state': 'S', 'ttyName': '?'}, '15': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/1]', 'state': 'S', 'ttyName': '?'}, '16': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/1]', 'state': 'S', 'ttyName': '?'}, '17': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/1]', 'state': 'S', 'ttyName': '?'}, '18': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0]', 'state': 'S', 'ttyName': '?'}, '19': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/1:0H]', 'state': 'S<', 'ttyName': '?'}, '20': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/2]', 'state': 'S', 'ttyName': '?'}, '21': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/2]', 'state': 'S', 'ttyName': '?'}, '22': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/2]', 'state': 'S', 'ttyName': '?'}, '23': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/2]', 'state': 'S', 'ttyName': '?'}, '24': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0]', 'state': 'S', 'ttyName': '?'}, '25': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/2:0H]', 'state': 'S<', 'ttyName': '?'}, '26': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[cpuhp/3]', 'state': 'S', 'ttyName': '?'}, '27': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdog/3]', 'state': 'S', 'ttyName': '?'}, '28': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[migration/3]', 'state': 'S', 'ttyName': '?'}, '29': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ksoftirqd/3]', 'state': 'S', 'ttyName': '?'}, '30': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0]', 'state': 'S', 'ttyName': '?'}, '31': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/3:0H]', 'state': 'S<', 'ttyName': '?'}, '32': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kdevtmpfs]', 'state': 'S', 'ttyName': '?'}, '33': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[netns]', 'state': 'S<', 'ttyName': '?'}, '34': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd]', 'state': 'S', 'ttyName': '?'}, '35': {'totalActiveTime': 22, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[khungtaskd2]', 'state': 'S', 'ttyName': '?'}, '36': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[oom_reaper]', 'state': 'S', 'ttyName': '?'}, '37': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[writeback]', 'state': 'S<', 'ttyName': '?'}, '38': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kcompactd0]', 'state': 'S', 'ttyName': '?'}, '39': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[crypto]', 'state': 'S<', 'ttyName': '?'}, '40': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kintegrityd]', 'state': 'S<', 'ttyName': '?'}, '41': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '42': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kblockd]', 'state': 'S<', 'ttyName': '?'}, '43': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ata_sff]', 'state': 'S<', 'ttyName': '?'}, '44': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[edac-poller]', 'state': 'S<', 'ttyName': '?'}, '45': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[dst_gc_task]', 'state': 'S', 'ttyName': '?'}, '46': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[watchdogd]', 'state': 'S<', 'ttyName': '?'}, '47': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[arp_cache-prd]', 'state': 'S', 'ttyName': '?'}, '49': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[icmp_unreachabl]', 'state': 'S', 'ttyName': '?'}, '50': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[rpciod]', 'state': 'S<', 'ttyName': '?'}, '51': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[xprtiod]', 'state': 'S<', 'ttyName': '?'}, '52': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kswapd0]', 'state': 'S', 'ttyName': '?'}, '53': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[vmstat]', 'state': 'S<', 'ttyName': '?'}, '54': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nfsiod]', 'state': 'S<', 'ttyName': '?'}, '63': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[pcielwd]', 'state': 'S<', 'ttyName': '?'}, '64': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '65': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '66': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '67': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '68': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '69': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '70': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '71': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '72': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[nvme]', 'state': 'S<', 'ttyName': '?'}, '73': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[kworker/u8:1]', 'state': 'S', 'ttyName': '?'}, '74': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ndisc_cache-prd]', 'state': 'S', 'ttyName': '?'}, '75': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ipv6_addrconf]', 'state': 'S<', 'ttyName': '?'}, '76': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ecc_log_wq]', 'state': 'S<', 'ttyName': '?'}, '124': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '125': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[bioset]', 'state': 'S<', 'ttyName': '?'}, '171': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[jbd2/nvme0n1p1-]', 'state': 'S', 'ttyName': '?'}, '172': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281467.0, 'cmd': '[ext4-rsv-conver]', 'state': 'S<', 'ttyName': '?'}, '194': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281468.0, 'cmd': '[kworker/0:1H]', 'state': 'S<', 'ttyName': '?'}, '272': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281474.0, 'cmd': '[loop0]', 'state': 'S<', 'ttyName': '?'}, '378': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/lib/systemd/systemd-udevd', 'state': 'Ss', 'ttyName': '?'}, '410': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281476.0, 'cmd': '/usr/sbin/lvmetad -f', 'state': 'Ss', 'ttyName': '?'}, '497': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '[ena]', 'state': 'S<', 'ttyName': '?'}, '746': {'totalActiveTime': 224, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/lib/systemd/systemd-logind', 'state': 'Ss', 'ttyName': '?'}, '752': {'totalActiveTime': 66, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/ProcMonitor', 'state': 'Ss', 'ttyName': '?'}, '762': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/sbin/mcelog --ignorenodev --daemon --foreground', 'state': 'Ss', 'ttyName': '?'}, '770': {'totalActiveTime': 343, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281477.0, 'cmd': '/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation', 'state': 'Ss', 'ttyName': '?'}, '784': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '[kworker/1:1]', 'state': 'S', 'ttyName': '?'}, '790': {'totalActiveTime': 6, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281478.0, 'cmd': '/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid', 'state': 'Ss', 'ttyName': '?'}, '880': {'totalActiveTime': 21, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/sbin/crond -n', 'state': 'Ss', 'ttyName': '?'}, '889': {'totalActiveTime': 27, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281479.0, 'cmd': '/usr/bin/wdogdev -t 60', 'state': 'S<s', 'ttyName': '?'}, '998': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local', 'state': 'S', 'ttyName': '?'}, '1000': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/0'}, '1015': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281480.0, 'cmd': '/usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil', 'state': 'Ss', 'ttyName': '?'}, '1019': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys', 'state': 'S', 'ttyName': '?'}, '1021': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/1'}, '1030': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure', 'state': 'S', 'ttyName': '?'}, '1031': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281481.0, 'cmd': 'inotifywait -m -r -e modify -e create -e delete -e attrib -e move .', 'state': 'Ss+', 'ttyName': 'pts/2'}, '1062': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281482.0, 'cmd': '/bin/bash /usr/sbin/core_annotate_util daemon', 'state': 'Ss', 'ttyName': '?'}, '1189': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1190': {'totalActiveTime': 0, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': '/usr/bin/ConnMgr -p /var/run/ConnMgr.pid', 'state': 'S', 'ttyName': '?'}, '1224': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281487.0, 'cmd': 'inotifywait -e modify /var/lib/rpm', 'state': 'S', 'ttyName': '?'}, '1226': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1228': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'S', 'ttyName': '?'}, '1242': {'totalActiveTime': 0, 'memPct': 0.9, 'cpuPct': 0.0, 'startTime': 1597281493.0, 'cmd': 'ProcMgr-master', 'state': 'S', 'ttyName': '?'}, '1415': {'totalActiveTime': 748, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281507.0, 'cmd': '/usr/bin/EosOomAdjust', 'state': 'S', 'ttyName': '?'}, '1423': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '[rbfd_vrf_cleanu]', 'state': 'S', 'ttyName': '?'}, '1438': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/sbin/acpid', 'state': 'Ss', 'ttyName': '?'}, '1475': {'totalActiveTime': 173, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281508.0, 'cmd': '/usr/bin/SlabMonitor', 'state': 'S', 'ttyName': '?'}, '1517': {'totalActiveTime': 379, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'StageMgr', 'state': 'S', 'ttyName': '?'}, '1521': {'totalActiveTime': 1340, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281511.0, 'cmd': 'Fru', 'state': 'S', 'ttyName': '?'}, '1524': {'totalActiveTime': 667, 'memPct': 1.8, 'cpuPct': 0.0, 'startTime': 1597281512.0, 'cmd': 'Launcher', 'state': 'S', 'ttyName': '?'}, '1651': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp', 'state': 'S', 'ttyName': '?'}, '1653': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1654': {'totalActiveTime': 1826, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'Lldp', 'state': 'S', 'ttyName': '?'}, '1657': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon', 'state': 'S', 'ttyName': '?'}, '1659': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1661': {'totalActiveTime': 1354, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'McastCommon', 'state': 'S', 'ttyName': '?'}, '1665': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec', 'state': 'S', 'ttyName': '?'}, '1666': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1668': {'totalActiveTime': 1477, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': 'PortSec', 'state': 'S', 'ttyName': '?'}, '1669': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281532.0, 'cmd': '[kworker/1:1H]', 'state': 'S<', 'ttyName': '?'}, '1696': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281533.0, 'cmd': 'netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd', 'state': 'S', 'ttyName': '?'}, '1698': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1699': {'totalActiveTime': 1443, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Bfd', 'state': 'S', 'ttyName': '?'}, '1700': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag', 'state': 'S', 'ttyName': '?'}, '1701': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1702': {'totalActiveTime': 2683, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281534.0, 'cmd': 'Lag', 'state': 'S', 'ttyName': '?'}, '1707': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira', 'state': 'S', 'ttyName': '?'}, '1708': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1709': {'totalActiveTime': 1369, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'Ira', 'state': 'S', 'ttyName': '?'}, '1710': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy', 'state': 'S', 'ttyName': '?'}, '1712': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1713': {'totalActiveTime': 1617, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'LedPolicy', 'state': 'S', 'ttyName': '?'}, '1714': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr', 'state': 'S', 'ttyName': '?'}, '1715': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1716': {'totalActiveTime': 1786, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'EventMgr', 'state': 'S', 'ttyName': '?'}, '1717': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281535.0, 'cmd': 'netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx', 'state': 'S', 'ttyName': '?'}, '1718': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1721': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1723': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1724': {'totalActiveTime': 382, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'StandbyCpld', 'state': 'S', 'ttyName': '?'}, '1725': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor', 'state': 'S', 'ttyName': '?'}, '1726': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1729': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel', 'state': 'S', 'ttyName': '?'}, '1730': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1731': {'totalActiveTime': 620, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Tunnel', 'state': 'S', 'ttyName': '?'}, '1732': {'totalActiveTime': 1090, 'memPct': 1.6, 'cpuPct': 0.0, 'startTime': 1597281536.0, 'cmd': 'Aaa', 'state': 'Sl', 'ttyName': '?'}, '1734': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology', 'state': 'S', 'ttyName': '?'}, '1735': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1736': {'totalActiveTime': 1362, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'StpTopology', 'state': 'S', 'ttyName': '?'}, '1738': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl', 'state': 'S', 'ttyName': '?'}, '1741': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1743': {'totalActiveTime': 3007, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281537.0, 'cmd': 'Acl', 'state': 'S', 'ttyName': '?'}, '1753': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp', 'state': 'S', 'ttyName': '?'}, '1756': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1759': {'totalActiveTime': 2195, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'Stp', 'state': 'S', 'ttyName': '?'}, '1776': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1778': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1780': {'totalActiveTime': 447, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281538.0, 'cmd': 'KernelNetworkInfo', 'state': 'S', 'ttyName': '?'}, '1785': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6', 'state': 'S', 'ttyName': '?'}, '1788': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1789': {'totalActiveTime': 1358, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'McastCommon6', 'state': 'S', 'ttyName': '?'}, '1799': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1803': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1805': {'totalActiveTime': 1371, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281539.0, 'cmd': 'LacpTxAgent', 'state': 'S', 'ttyName': '?'}, '1816': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp', 'state': 'S', 'ttyName': '?'}, '1820': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1823': {'totalActiveTime': 2032, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'Arp', 'state': 'S', 'ttyName': '?'}, '1838': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib', 'state': 'S', 'ttyName': '?'}, '1843': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1846': {'totalActiveTime': 1366, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'KernelFib', 'state': 'S', 'ttyName': '?'}, '1848': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281540.0, 'cmd': 'netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos', 'state': 'S', 'ttyName': '?'}, '1851': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat', 'state': 'S', 'ttyName': '?'}, '1852': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1854': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1855': {'totalActiveTime': 1538, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Qos', 'state': 'S', 'ttyName': '?'}, '1856': {'totalActiveTime': 448, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'Thermostat', 'state': 'S', 'ttyName': '?'}, '1857': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib', 'state': 'S', 'ttyName': '?'}, '1860': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1861': {'totalActiveTime': 449, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'L2Rib', 'state': 'S', 'ttyName': '?'}, '1862': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281541.0, 'cmd': 'netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled', 'state': 'S', 'ttyName': '?'}, '1863': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1864': {'totalActiveTime': 1358, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'TopoAgent', 'state': 'S', 'ttyName': '?'}, '1866': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse', 'state': 'S', 'ttyName': '?'}, '1867': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1868': {'totalActiveTime': 380, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerFuse', 'state': 'S', 'ttyName': '?'}, '1869': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager', 'state': 'S', 'ttyName': '?'}, '1870': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1871': {'totalActiveTime': 380, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'PowerManager', 'state': 'S', 'ttyName': '?'}, '1873': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281542.0, 'cmd': 'netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra', 'state': 'S', 'ttyName': '?'}, '1874': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1877': {'totalActiveTime': 1748, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'Ebra', 'state': 'S', 'ttyName': '?'}, '1891': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1892': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1893': {'totalActiveTime': 381, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'ReloadCauseAgent', 'state': 'S', 'ttyName': '?'}, '1894': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1899': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1901': {'totalActiveTime': 381, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'SharedSecretProfile', 'state': 'S', 'ttyName': '?'}, '1905': {'totalActiveTime': 1376, 'memPct': 1.5, 'cpuPct': 0.0, 'startTime': 1597281543.0, 'cmd': 'IgmpSnooping', 'state': 'S', 'ttyName': '?'}, '1934': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled', 'state': 'S', 'ttyName': '?'}, '1937': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1944': {'totalActiveTime': 448, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'StaticRoute', 'state': 'S', 'ttyName': '?'}, '1949': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled', 'state': 'S', 'ttyName': '?'}, '1950': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281544.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1953': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled', 'state': 'S', 'ttyName': '?'}, '1954': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1956': {'totalActiveTime': 458, 'memPct': 1.9, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'BgpCliHelper', 'state': 'S', 'ttyName': '?'}, '1957': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1958': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1959': {'totalActiveTime': 1373, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281545.0, 'cmd': 'ConnectedRoute', 'state': 'S', 'ttyName': '?'}, '1962': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput', 'state': 'S', 'ttyName': '?'}, '1963': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '1968': {'totalActiveTime': 449, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1597281546.0, 'cmd': 'RouteInput', 'state': 'S', 'ttyName': '?'}, '2011': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe', 'state': 'S', 'ttyName': '?'}, '2014': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281547.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2319': {'totalActiveTime': 34, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281552.0, 'cmd': '/usr/sbin/rsyslogd -n', 'state': 'Ssl', 'ttyName': '?'}, '2592': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281557.0, 'cmd': 'netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager', 'state': 'S', 'ttyName': '?'}, '2596': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2597': {'totalActiveTime': 382, 'memPct': 1.1, 'cpuPct': 0.0, 'startTime': 1597281558.0, 'cmd': 'LicenseManager', 'state': 'S', 'ttyName': '?'}, '2614': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/usr/bin/conlogd', 'state': 'S', 'ttyName': '?'}, '2615': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/agetty --noclear tty1 linux', 'state': 'Ss+', 'ttyName': 'tty1'}, '2616': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281559.0, 'cmd': '/sbin/mingetty --noclear /dev/ttyS0', 'state': 'Ss+', 'ttyName': 'ttyS0'}, '2633': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': "sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'", 'state': 'S', 'ttyName': '?'}, '2638': {'totalActiveTime': 72, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': '/usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console', 'state': 'S', 'ttyName': '?'}, '2639': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281560.0, 'cmd': 'sed s/\\(.*\\)/\\1\\r/', 'state': 'S', 'ttyName': '?'}, '2666': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281561.0, 'cmd': '[SuperServer] <defunct>', 'state': 'Zs', 'ttyName': '?'}, '2695': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec', 'state': 'S', 'ttyName': '?'}, '2696': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '2697': {'totalActiveTime': 2829, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'Ipsec', 'state': 'S', 'ttyName': '?'}, '2699': {'totalActiveTime': 2, 'memPct': 0.4, 'cpuPct': 0.0, 'startTime': 1597281562.0, 'cmd': 'dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1', 'state': 'Ss', 'ttyName': '?'}, '2726': {'totalActiveTime': 174, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281564.0, 'cmd': 'ntpd -u ntp:ntp -g -p /var/run/ntpd.pid', 'state': 'Ssl', 'ttyName': '?'}, '2730': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281567.0, 'cmd': 'fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc', 'state': 'Ss', 'ttyName': '?'}, '3232': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat', 'state': 'S', 'ttyName': '?'}, '3237': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3242': {'totalActiveTime': 3000, 'memPct': 1.2, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Nat', 'state': 'S', 'ttyName': '?'}, '3254': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan', 'state': 'S', 'ttyName': '?'}, '3257': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3263': {'totalActiveTime': 1435, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281723.0, 'cmd': 'Vxlan', 'state': 'S', 'ttyName': '?'}, '3275': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3277': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3278': {'totalActiveTime': 1509, 'memPct': 1.4, 'cpuPct': 0.0, 'startTime': 1597281724.0, 'cmd': 'VxlanSwFwd', 'state': 'S', 'ttyName': '?'}, '3315': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/starter --daemon charon', 'state': 'Ss', 'ttyName': '?'}, '3317': {'totalActiveTime': 226, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1597281725.0, 'cmd': '/usr/libexec/strongswan/charon --use-syslog', 'state': 'Ssl', 'ttyName': '?'}, '3367': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled', 'state': 'S', 'ttyName': '?'}, '3368': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1597281726.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '3856': {'totalActiveTime': 3, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281920.0, 'cmd': '[kworker/u8:0]', 'state': 'S', 'ttyName': '?'}, '3977': {'totalActiveTime': 1, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1597281922.0, 'cmd': '/usr/sbin/dnsmasq', 'state': 'S', 'ttyName': '?'}, '12089': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461001.0, 'cmd': '[kworker/0:4]', 'state': 'S', 'ttyName': '?'}, '16200': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461721.0, 'cmd': '[kworker/0:0]', 'state': 'S', 'ttyName': '?'}, '16674': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600461906.0, 'cmd': '/bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh', 'state': 'S', 'ttyName': '?'}, '19259': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462380.0, 'cmd': '[kworker/0:2]', 'state': 'S', 'ttyName': '?'}, '21869': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600462740.0, 'cmd': '[kworker/0:1]', 'state': 'S', 'ttyName': '?'}, '22561': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1600463007.0, 'cmd': 'ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww', 'state': 'Rs', 'ttyName': '?'}, '26289': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini', 'state': 'S', 'ttyName': '?'}, '26290': {'totalActiveTime': 0, 'memPct': 0.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Ss', 'ttyName': '?'}, '26291': {'totalActiveTime': 407, 'memPct': 1.3, 'cpuPct': 0.0, 'startTime': 1598457411.0, 'cmd': 'CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize', 'state': 'Sl', 'ttyName': '?'}, '26335': {'totalActiveTime': 0, 'memPct': 0.0, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;', 'state': 'Ss', 'ttyName': '?'}, '26337': {'totalActiveTime': 176, 'memPct': 0.1, 'cpuPct': 0.0, 'startTime': 1598457412.0, 'cmd': 'nginx: worker process ', 'state': 'S', 'ttyName': '?'}}, 'timeInfo': {'upTime': 3181540.7, 'loadAvg': [1.17, 1.28, 1.37], 'users': 0, 'currentTime': 1600463008.420829}}, 'text': " 21:03:28 up 36 days, 19:45, 0 users, load average: 1.17, 1.28, 1.37\n PID %CPU %MEM TT STAT STARTED TIME CMD\n 2025 101 3.7 ? Sl Aug 13 37-08:33:40 Sfe\n16716 4.2 0.9 ? SNl 20:45:07 00:00:46 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config\n 1675 2.5 2.1 ? Sl Aug 13 22:47:33 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042\n 1476 0.3 2.6 ? S Aug 13 02:45:19 Sysdb\n 1518 0.3 7.6 ? Sl Aug 13 03:20:06 ConfigAgent\n 1243 0.2 0.9 ? S Aug 13 02:11:16 ProcMgr-worker\n 1951 0.2 1.7 ? S Aug 13 01:52:19 IpRib\n 1703 0.1 1.7 ? S Aug 13 01:08:09 SuperServer\n 1719 0.1 1.2 ? S Aug 13 00:56:25 StpTxRx\n 1727 0.1 1.0 ? S Aug 13 01:44:48 AgentMonitor\n 1980 0.1 2.3 ? Sl Aug 13 01:08:51 Bgp\n 3369 0.1 1.4 ? S Aug 13 01:42:38 Fhrp\n 1 0.0 0.0 ? Ss Aug 13 00:07:52 /sbin/init\n 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd]\n 3 0.0 0.0 ? S Aug 13 00:00:20 [ksoftirqd/0]\n 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H]\n 7 0.0 0.0 ? S Aug 13 00:00:32 [rcu_preempt]\n 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched]\n 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh]\n 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0]\n 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain]\n 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0]\n 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0]\n 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1]\n 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1]\n 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1]\n 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1]\n 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0]\n 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H]\n 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2]\n 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2]\n 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2]\n 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2]\n 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0]\n 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H]\n 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3]\n 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3]\n 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3]\n 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3]\n 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0]\n 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H]\n 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs]\n 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns]\n 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd]\n 35 0.0 0.0 ? S Aug 13 00:00:22 [khungtaskd2]\n 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper]\n 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback]\n 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0]\n 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto]\n 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd]\n 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd]\n 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff]\n 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller]\n 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task]\n 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd]\n 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd]\n 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl]\n 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod]\n 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod]\n 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0]\n 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat]\n 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod]\n 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd]\n 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme]\n 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1]\n 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd]\n 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf]\n 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq]\n 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset]\n 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-]\n 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver]\n 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H]\n 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0]\n 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd\n 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f\n 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena]\n 746 0.0 0.0 ? Ss Aug 13 00:03:44 /usr/lib/systemd/systemd-logind\n 752 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor\n 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground\n 770 0.0 0.1 ? Ss Aug 13 00:05:43 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation\n 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1]\n 790 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid\n 880 0.0 0.0 ? Ss Aug 13 00:00:21 /usr/sbin/crond -n\n 889 0.0 0.0 ? S<s Aug 13 00:00:27 /usr/bin/wdogdev -t 60\n 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local\n 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil\n 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys\n 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure\n 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move .\n 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon\n 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid\n 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm\n 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master\n 1415 0.0 0.0 ? S Aug 13 00:12:28 /usr/bin/EosOomAdjust\n 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu]\n 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid\n 1475 0.0 0.0 ? S Aug 13 00:02:53 /usr/bin/SlabMonitor\n 1517 0.0 1.2 ? S Aug 13 00:06:19 StageMgr\n 1521 0.0 1.4 ? S Aug 13 00:22:20 Fru\n 1524 0.0 1.8 ? S Aug 13 00:11:07 Launcher\n 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp\n 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1654 0.0 1.3 ? S Aug 13 00:30:26 Lldp\n 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon\n 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1661 0.0 1.2 ? S Aug 13 00:22:34 McastCommon\n 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec\n 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1668 0.0 1.1 ? S Aug 13 00:24:37 PortSec\n 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H]\n 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd\n 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1699 0.0 1.4 ? S Aug 13 00:24:03 Bfd\n 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag\n 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1702 0.0 1.3 ? S Aug 13 00:44:43 Lag\n 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira\n 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1709 0.0 1.5 ? S Aug 13 00:22:49 Ira\n 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy\n 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1713 0.0 1.2 ? S Aug 13 00:26:57 LedPolicy\n 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr\n 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1716 0.0 1.3 ? S Aug 13 00:29:46 EventMgr\n 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx\n 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld\n 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1724 0.0 1.1 ? S Aug 13 00:06:22 StandbyCpld\n 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor\n 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel\n 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1731 0.0 1.2 ? S Aug 13 00:10:20 Tunnel\n 1732 0.0 1.6 ? Sl Aug 13 00:18:10 Aaa\n 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology\n 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1736 0.0 1.2 ? S Aug 13 00:22:42 StpTopology\n 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl\n 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1743 0.0 1.4 ? S Aug 13 00:50:07 Acl\n 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp\n 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1759 0.0 1.1 ? S Aug 13 00:36:35 Stp\n 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo\n 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1780 0.0 1.1 ? S Aug 13 00:07:27 KernelNetworkInfo\n 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6\n 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1789 0.0 1.2 ? S Aug 13 00:22:38 McastCommon6\n 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent\n 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1805 0.0 1.2 ? S Aug 13 00:22:51 LacpTxAgent\n 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp\n 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1823 0.0 1.5 ? S Aug 13 00:33:52 Arp\n 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib\n 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1846 0.0 1.4 ? S Aug 13 00:22:46 KernelFib\n 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos\n 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat\n 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1855 0.0 1.2 ? S Aug 13 00:25:38 Qos\n 1856 0.0 1.1 ? S Aug 13 00:07:28 Thermostat\n 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib\n 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1861 0.0 1.2 ? S Aug 13 00:07:29 L2Rib\n 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled\n 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1864 0.0 1.2 ? S Aug 13 00:22:38 TopoAgent\n 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse\n 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1868 0.0 1.1 ? S Aug 13 00:06:20 PowerFuse\n 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager\n 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1871 0.0 1.1 ? S Aug 13 00:06:20 PowerManager\n 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra\n 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1877 0.0 1.4 ? S Aug 13 00:29:08 Ebra\n 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent\n 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1893 0.0 1.1 ? S Aug 13 00:06:21 ReloadCauseAgent\n 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile\n 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1901 0.0 1.1 ? S Aug 13 00:06:21 SharedSecretProfile\n 1905 0.0 1.5 ? S Aug 13 00:22:56 IgmpSnooping\n 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled\n 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1944 0.0 1.3 ? S Aug 13 00:07:28 StaticRoute\n 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled\n 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled\n 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1956 0.0 1.9 ? S Aug 13 00:07:38 BgpCliHelper\n 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute\n 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1959 0.0 1.3 ? S Aug 13 00:22:53 ConnectedRoute\n 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput\n 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 1968 0.0 1.3 ? S Aug 13 00:07:29 RouteInput\n 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe\n 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2319 0.0 0.0 ? Ssl Aug 13 00:00:34 /usr/sbin/rsyslogd -n\n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager\n 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2597 0.0 1.1 ? S Aug 13 00:06:22 LicenseManager\n 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd\n 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux\n 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0\n 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\\(.*\\)/\\1\\r/'\n 2638 0.0 0.0 ? S Aug 13 00:01:12 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console\n 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\\(.*\\)/\\1\\r/\n 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct>\n 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec\n 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 2697 0.0 1.2 ? S Aug 13 00:47:09 Ipsec\n 2699 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1\n 2726 0.0 0.1 ? Ssl Aug 13 00:02:54 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid\n 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc\n 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat\n 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3242 0.0 1.2 ? S Aug 13 00:50:00 Nat\n 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan\n 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3263 0.0 1.4 ? S Aug 13 00:23:55 Vxlan\n 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd\n 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3278 0.0 1.4 ? S Aug 13 00:25:09 VxlanSwFwd\n 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon\n 3317 0.0 0.1 ? Ssl Aug 13 00:03:46 /usr/libexec/strongswan/charon --use-syslog\n 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled\n 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0]\n 3977 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq\n12089 0.0 0.0 ? S 20:30:01 00:00:00 [kworker/0:4]\n16200 0.0 0.0 ? S 20:42:01 00:00:00 [kworker/0:0]\n16674 0.0 0.0 ? S 20:45:06 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh\n19259 0.0 0.0 ? S 20:53:00 00:00:00 [kworker/0:2]\n21869 0.0 0.0 ? S 20:59:00 00:00:00 [kworker/0:1]\n22577 0.0 0.0 ? Rs 21:03:28 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww\n26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini\n26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26291 0.0 1.3 ? Sl Aug 26 00:06:47 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize\n26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid;\n26337 0.0 0.1 ? S Aug 26 00:02:56 nginx: worker process \n"}, 'show running-config section username': {'json': {'output': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'text': 'no username admin\n!\nusername ec2-user nopassword\nusername ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2\nusername kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f.\n'}, 'show lldp': {'json': {'messageTxHoldTime': 120, 'managementAddressTransmitted': 'best', 'enabledTlvTypes': [{'tlvType': 'portDescription'}, {'tlvType': 'systemName'}, {'tlvType': 'systemDescription'}, {'tlvType': 'systemCapabilities'}, {'tlvType': 'managementAddress'}, {'tlvType': 'portVlan'}, {'tlvType': 'linkAggregation'}, {'tlvType': 'maxFrameSize'}, {'tlvType': 'powerViaMdi'}, {'tlvType': 'medCapabilities'}, {'tlvType': 'medNetworkPolicy'}], 'reinitDelay': 2, 'messageTxInterval': 30, 'lldpInterfaces': {'Ethernet2': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet100': {'rxEnabled': True, 'txEnabled': True}, 'Ethernet1': {'rxEnabled': True, 'txEnabled': True}}, 'managementAddressVrf': 'default'}, 'text': 'LLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n'}, 'show aaa counters': {'json': {'authenticationSuccess': 132678, 'authorizationAllowed': 2824, 'accountingSuccess': 0, 'pendingAccountingRequests': 0, 'authorizationDenied': 0, 'authenticationFail': 2, 'authenticationUnavailable': 159, 'accountingError': 0, 'authorizationUnavailable': 0}, 'text': 'Authentication\n Successful: 132679\n Failed: 2\n Service unavailable: 159\n\nAuthorization\n Allowed: 2824\n Denied: 0\n Service unavailable: 0\n\nAccounting\n Successful: 0\n Error: 0\n Pending: 0\n\nLast time counters were cleared: never\n'}, 'show users detail': {'json': {'serials': {}, 'nonInteractives': {'134244': {'username': 'kgrozis', 'state': 'established', 'sessionStartTime': 1600462995, 'role': '', 'service': 'commandApi', 'authMethod': 'local'}}, 'vtys': {}}, 'text': 'Session Username Roles TTY State Duration Auth Remote Host \n-------- --------- ------- ------------- ------- ---------- ------- ----------- \n134244 kgrozis command-api E 0:00:15 local \n'}, 'show aaa methods all': {'json': {'authorization': {'commandsAuthzMethods': {'privilege0-15': {'methods': ['none']}}, 'execAuthzMethods': {'exec': {'methods': ['none']}}}, 'authentication': {'loginAuthenMethods': {'default': {'methods': ['local']}}, 'dot1xAuthenMethods': {'default': {'methods': []}}, 'enableAuthenMethods': {'default': {'methods': ['local']}}}, 'accounting': {'systemAcctMethods': {'system': {'defaultMethods': [], 'consoleMethods': []}}, 'execAcctMethods': {'exec': {'defaultMethods': [], 'consoleMethods': []}}, 'commandsAcctMethods': {'privilege0-15': {'defaultMethods': [], 'consoleMethods': []}}, 'dot1xAcctMethods': {'dot1x': {'defaultMethods': [], 'consoleMethods': []}}}}, 'text': 'Authentication method lists for LOGIN:\n name=default methods=local\nAuthentication method list for ENABLE:\n name=default methods=local\nAuthentication method list for DOT1X:\n name=default methods=\nAuthorization method lists for COMMANDS:\n name=privilege0-15 methods=none\nAuthorization method list for EXEC:\n name=exec methods=none\nAccounting method lists for COMMANDS:\n name=privilege0-15 default-action=none\nAccounting method list for EXEC:\n name=exec default-action=none\nAccounting method list for SYSTEM:\n name=system default-action=none\nAccounting method list for DOT1X:\n name=dot1x default-action=none\n'}, 'show ntp status': {'json': {'status': 'synchronised', 'pollingInterval': 1024, 'stratum': 4, 'maxEstimatedError': 29, 'server': '169.254.169.123'}, 'text': 'synchronised to NTP server (169.254.169.123) at stratum 4\n time correct to within 29 ms\n polling server every 1024 s\n\n'}, 'show ntp associations': {'json': {'peers': {'169.254.169.123': {'delay': 0.171, 'jitter': 0.657, 'lastReceived': 1600461981.0, 'peerType': 'local', 'reachabilityHistory': [True, True, True, True, True, True, True, True], 'condition': 'sys.peer', 'offset': -0.149, 'peerIpAddr': '169.254.169.123', 'pollInterval': 1024, 'refid': '169.254.169.122', 'stratumLevel': 3}}}, 'text': ' remote refid st t when poll reach delay offset jitter\n==============================================================================\n*169.254.169.123 169.254.169.12 3 l 0 1024 377 0.151 -0.235 0.688\n'}, 'show daemon': {'json': {'daemons': {'TerminAttr': {'running': True, 'option': {}, 'starttime': 1597281533.6882432, 'pid': 1675, 'enabled': True, 'uptime': 3181480.32, 'data': {}, 'isSdkAgent': False}}}, 'text': 'Process: TerminAttr (running with PID 1675)\nUptime: 36 days, 19:44:40 (Start time: Thu Aug 13 01:18:53 2020)\nNo configuration options stored.\n\nNo status data stored.\n\n'}, 'show zerotouch': {'json': {'mode': 'disabled', 'scriptTimeout': 900}, 'text': '\nZeroTouch Mode: Disabled\nScript Exec Timeout: 900\n'}, 'dir flash:zerotouch-config': {'json': {'messages': ['Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291584512 bytes free)\n']}, 'text': 'Directory of flash:/zerotouch-config\n\n -rw- 13 Mar 30 23:38 zerotouch-config\n\n8319852544 bytes total (7291584512 bytes free)\n'}, 'show system environment temperature': {'json': {'cardSlots': [], 'powerSupplySlots': [], 'shutdownOnOverheat': True, 'tempSensors': [], 'systemStatus': 'unknownTemperatureAlarmLevel'}, 'text': 'System temperature status is: Unknown\n'}, 'show system environment cooling': {'json': {'overrideFanSpeed': 0, 'coolingMode': 'automatic', 'powerSupplySlots': [], 'fanTraySlots': [], 'minFanSpeed': 0, 'shutdownOnInsufficientFans': True, 'systemStatus': 'unknownCoolingAlarmLevel', 'airflowDirection': 'unknownAirflowDirection'}, 'text': 'System cooling status is: Unknown\nAmbient temperature: Unknown\n Config Actual Speed Stable\nFan Status Speed Speed Uptime Stability Uptime\n--- ------ ------ ------ ------ --------- ------\n'}, 'show management api http-commands': {'json': {'httpServer': {'running': False, 'configured': False, 'port': 80}, 'users': {'kgrozis': {'requestCount': 122296, 'bytesOut': 344122222, 'lastHitTime': 1600463016.0097427, 'bytesIn': 19684310}}, 'bytesOut': 344122222, 'logLevel': 'none', 'dscpValue': 0, 'corsOrigins': [], 'hitCount': 129159, 'vrf': 'default', 'lastHitTime': 1600463016.0096953, 'tlsProtocol': ['1.0', '1.1', '1.2'], 'localHttpServer': {'running': False, 'configured': False, 'port': 8080}, 'executionTime': 13525.059625684022, 'enabled': True, 'fipsEnabled': False, 'httpsServer': {'running': True, 'configured': True, 'port': 443}, 'requestCount': 122296, 'vrfs': ['default'], 'urls': ['Ethernet1 : https://11.201.15.101:443', 'Ethernet2 : https://11.201.15.201:443', 'Ethernet100 : https://11.201.8.1:443', 'Loopback0 : https://11.201.0.3:443', 'Loopback10 : https://198.18.0.37:443'], 'unixSocketServer': {'running': False, 'configured': False}, 'bytesIn': 19684310, 'commandCount': 244592, 'iframeAncestors': []}, 'text': 'Enabled: Yes\nHTTPS server: running, set to use port 443\nHTTP server: shutdown, set to use port 80\nLocal HTTP server: shutdown, no authentication, set to use port 8080\nUnix Socket server: shutdown, no authentication\nVRFs: default\nHits: 129163\nLast hit: 0 seconds ago\nBytes in: 19684972\nBytes out: 344123898\nRequests: 122300\nCommands: 244600\nDuration: 13525.173 seconds\nSSL Profile: none\nFIPS Mode: No\nQoS DSCP: 0\nLog Level: none\nCSP Frame Ancestor: None\nTLS Protocols: 1.0 1.1 1.2\n User Requests Bytes in Bytes out Last hit \n------------- -------------- -------------- --------------- ------------- \n kgrozis 122300 19684972 344123898 0 seconds ago \n\nURLs \n--------------------------------------- \nEthernet1 : https://11.201.15.101:443 \nEthernet2 : https://11.201.15.201:443 \nEthernet100 : https://11.201.8.1:443 \nLoopback0 : https://11.201.0.3:443 \nLoopback10 : https://198.18.0.37:443 \n\n'}, 'show tacacs': {'json': {'tacacsServers': [], 'groups': {}, 'srcIntf': {}, 'lastCounterClearTime': 0.0}, 'text': '\nLast time counters were cleared: never\n'}, 'show logging': {'json': {'output': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:27:39 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:28:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:29 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:50 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:55 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:51:05 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:51:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:14 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:54 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}, 'text': 'Syslog logging: enabled\n Buffer logging: level debugging\n Console logging: level errors\n Persistent logging: disabled\n Monitor logging: level errors\n Synchronous logging: disabled\n Trap logging: level informational\n Sequence numbers: disabled\n Syslog facility: local4\n Hostname format: Hostname only\n Repeat logging interval: disabled\n Repeat messages: disabled\n\nFacility Severity Effective Severity\n-------------------- ------------- ------------------\naaa debugging debugging \naccounting debugging debugging \nacl debugging debugging \nagent debugging debugging \nale debugging debugging \narp debugging debugging \nbfd debugging debugging \nbgp debugging debugging \nbmp debugging debugging \ncapacity debugging debugging \ncapi debugging debugging \nclear debugging debugging \ncvx debugging debugging \ndataplane debugging debugging \ndhcp debugging debugging \ndot1x debugging debugging \ndscp debugging debugging \nenvmon debugging debugging \neth debugging debugging \neventmon debugging debugging \nextension debugging debugging \nfhrp debugging debugging \nflow debugging debugging \nforwarding debugging debugging \nfru debugging debugging \nfwk debugging debugging \ngmp debugging debugging \nhardware debugging debugging \nhealth debugging debugging \nhttpservice debugging debugging \nigmp debugging debugging \nigmpsnooping debugging debugging \nint debugging debugging \nintf debugging debugging \nip6routing debugging debugging \niprib debugging debugging \nira debugging debugging \nisis debugging debugging \nkernelfib debugging debugging \nlacp debugging debugging \nlag debugging debugging \nlauncher debugging debugging \nldp debugging debugging \nlicense debugging debugging \nlineproto debugging debugging \nlldp debugging debugging \nloadbalancer debugging debugging \nlogmgr debugging debugging \nloopback debugging debugging \nloopprotect debugging debugging \nmapreducemonitor debugging debugging \nmcs debugging debugging \nmirroring debugging debugging \nmka debugging debugging \nmlag debugging debugging \nmldsnooping debugging debugging \nmmode debugging debugging \nmroute debugging debugging \nmrp debugging debugging \nmsdp debugging debugging \nmsrp debugging debugging \nmsspolicymonitor debugging debugging \nmvrp debugging debugging \nnat debugging debugging \nopenconfig debugging debugging \nopenflow debugging debugging \nospf debugging debugging \nospf3 debugging debugging \npackage debugging debugging \npfc debugging debugging \npimbsr debugging debugging \nportsecurity debugging debugging \nptp debugging debugging \npwrmgmt debugging debugging \nqos debugging debugging \nqueuemonitor debugging debugging \nradius debugging debugging \nredundancy debugging debugging \nrib debugging debugging \nrouting debugging debugging \nsecurity debugging debugging \nservermonitor debugging debugging \nspantree debugging debugging \nsso debugging debugging \nstagemgr debugging debugging \nsys debugging debugging \nsysdb debugging debugging \ntapagg debugging debugging \ntcp debugging debugging \ntransceiver debugging debugging \ntunnel debugging debugging \ntunnelintf debugging debugging \nvmtracersess debugging debugging \nvmwarevi debugging debugging \nvmwarevs debugging debugging \nvrf debugging debugging \nvrrp debugging debugging \nvxlan debugging debugging \nxmpp debugging debugging \nztp debugging debugging \n\nLog Buffer:\nSep 18 20:27:39 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:27:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:28:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:30:59 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:31:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:29 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:50 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:33:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:36:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:37:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:45:55 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:50:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:51:05 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:51:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:53:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:14 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:54:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:57:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\nSep 18 20:58:54 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api]\nSep 18 21:03:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api]\n'}}} test_name: test_if_files_on_ test_parameters: {'parameters': {'show_log': 'show_output.log'}} INFO root:tests_tools.py:257 Return model data and text output from show commands and log text output for show file information flash:zerotouch-config with connnection Node(connection=EapiConnection(transport=https://3.131.34.190:443//command-api)) INFO root:tests_tools.py:261 Raw json output of show file information flash:zerotouch-config on dut kg-topology-CloudEOSEdge2: [{'command': 'show file information flash:zerotouch-config', 'result': {'isDir': False, 'path': 'flash:/zerotouch-config', 'fileName': '/mnt/flash/zerotouch-config'}, 'encoding': 'json'}] INFO root:tests_tools.py:264 Raw text output of show file information flash:zerotouch-config on dut kg-topology-CloudEOSEdge2: [{'output': 'flash:/zerotouch-config:\n type is file\n'}] INFO root:tests_tools.py:320 Open log file for logging test show commands INFO root:tests_tools.py:324 Opening file show_output.log and append show output: flash:/zerotouch-config: type is file INFO root:test_filesystem.py:80 WHEN flash:zerotouch-config file isDir state is |False| INFO root:test_filesystem.py:84 THEN test case result is |True| INFO root:test_filesystem.py:85 OUTPUT of |show file information flash:zerotouch-config| is : [{'output': 'flash:/zerotouch-config:\n type is file\n'}] | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_input_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest does not have input errors | 0.75 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0| TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|. GIVEN interface input errors is |0|. WHEN interface inputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| inErrors, correct state is |0| TEST if interface |Ethernet2| counters have input errors on |kg-topology-CloudEOSEdge2|. GIVEN interface input errors is |0|. WHEN interface inputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_input_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_input_errors_on_ exists in results file at index 2 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_input_errors_on_ with parameters {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_input_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_input_errors_on_ exists in results file at index 2 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/host/test_host.py::HostTests::test_if_hostname_is_correcet_on_[kg-topology-CloudEOSEdge2] | Verify hostname is set on device is correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| the configured hostname is |kg-topology-CloudEOSEdge2| and the correct hostname is |kg-topology-CloudEOSEdge2| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_host.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_hostname_is_correcet_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show hostname| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show hostname| on kg-topology-CloudEOSEdge2 INFO root:test_host.py:72 TEST is hostname kg-topology-CloudEOSEdge2 correct INFO root:test_host.py:73 GIVEN hostname kg-topology-CloudEOSEdge2 INFO root:test_host.py:74 WHEN hostname is kg-topology-CloudEOSEdge2 INFO root:test_host.py:81 THEN test case result is |False| INFO root:test_host.py:82 OUTPUT of |show hostname| is : Hostname: kg-topology-CloudEOSEdge2 FQDN: kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_output_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest does not have output errors | 1.19 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0| TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|. GIVEN interface output errors is |0|. WHEN interface outputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| outErrors, correct state is |0| TEST if interface |Ethernet2| has output errors on |kg-topology-CloudEOSEdge2|. GIVEN interface output errors is |0|. WHEN interface outputerrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_output_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_output_errors_on_ exists in results file at index 10 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_output_errors_on_ with parameters {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_output_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_output_errors_on_ exists in results file at index 10 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_long_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no frameLongShorts errors | 1.77 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0| TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|. GIVEN interface frameTooLongs errors is |0|. WHEN interface frameTooLongserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| frameTooLongs, correct state is |0| TEST if interface |Ethernet2| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|. GIVEN interface frameTooLongs errors is |0|. WHEN interface frameTooLongserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_frame_too_long_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_frame_too_long_errors_on_ exists in results file at index 6 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_frame_too_long_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_frame_too_long_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_frame_too_long_errors_on_ exists in results file at index 6 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfacePhyTests::test_if_intf_phy_status_connected_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest physical state is link up | 1.76 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ kg-topology-CloudEOSEdge2 is a VEOS instance so test NOT valid -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_phy_status_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'} INFO root:tests_tools.py:372 Verify if show command |show interfaces phy detail| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces phy detail| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:419 Verify if kg-topology-CloudEOSEdge2 DUT is a VEOS instance INFO root:tests_tools.py:423 kg-topology-CloudEOSEdge2 is a VEOS instance so returning True INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_phy_status_connected_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_phy_status_connected_on_ exists in results file at index 4 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_phy_status_connected_on_ with parameters {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail', 'test_suite': 'test_interface.py', 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'test_result': True, 'output_msg': None, 'actual_output': None, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_symbol_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no alignmentErrors errors | 0.71 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0| TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|. GIVEN interface symbolErrors errors is |0|. WHEN interface symbolErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| symbolErrors, correct state is |0| TEST if interface |Ethernet2| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|. GIVEN interface symbolErrors errors is |0|. WHEN interface symbolErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_symbol_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_symbol_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_symbol_errors_on_ exists in results file at index 3 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_symbol_errors_on_ with parameters {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_symbol_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_symbol_errors_on_ exists in results file at index 3 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceStatusTests::test_if_intf_link_status_is_connected_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest link statuses are up | 4.37 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface link line protocol status is set to: |connected|, correct state is |connected| - On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected| TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|. GIVEN interface status is |connected|. WHEN interface status is |connected|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 - On interface |Ethernet2|: interface link line protocol status is set to: |connected|, correct state is |connected| - On interface |Ethernet2|: interface link status is set to: |connected|, correct state is |connected| TEST if interface |Ethernet2| link status on |kg-topology-CloudEOSEdge2|. GIVEN interface status is |connected|. WHEN interface status is |connected|. THEN test case result is |True|. OUTPUT of |show interfaces status| is: Port Name Status Vlan Duplex Speed Type Flags Encapsulation Et1 connected routed full unconf 10/100/1000 Et2 connected routed full unconf 10/100/1000 Et2.102 connected routed full unconf dot1q-encapsulation 102 Et100 connected routed full 10G 10/100/1000 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_link_status_is_connected_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'} INFO root:tests_tools.py:372 Verify if show command |show interfaces status| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces status| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_link_status_is_connected_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_link_status_is_connected_on_ exists in results file at index 0 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_link_status_is_connected_on_ with parameters {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'actual_output': 'connected', 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_link_status_is_connected_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_link_status_is_connected_on_ exists in results file at index 0 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_fcs_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no fcsErrors errors | 2.62 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0| TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|. GIVEN interface fcsErrors errors is |0|. WHEN interface fcsErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| fcsErrors, correct state is |0| TEST if interface |Ethernet2| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|. GIVEN interface fcsErrors errors is |0|. WHEN interface fcsErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_fcs_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_fcs_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_fcs_errors_on_ exists in results file at index 5 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_fcs_errors_on_ with parameters {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_fcs_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_fcs_errors_on_ exists in results file at index 5 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_alignment_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no alignmentErrors errors | 2.66 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0| TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|. GIVEN interface alignmentErrors errors is |0|. WHEN interface alignmentErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| alignmentErrors, correct state is |0| TEST if interface |Ethernet2| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|. GIVEN interface alignmentErrors errors is |0|. WHEN interface alignmentErrorserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_alignment_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_alignment_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_alignment_errors_on_ exists in results file at index 11 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_alignment_errors_on_ with parameters {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_alignment_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_alignment_errors_on_ exists in results file at index 11 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceCountersTests::test_if_intf_counters_has_frame_too_short_errors_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no frameTooShorts errors | 2.07 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0| TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|. GIVEN interface frameTooShorts errors is |0|. WHEN interface frameTooShortserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 - On interface |Ethernet2|: interface counter errors has |0| frameTooShorts, correct state is |0| TEST if interface |Ethernet2| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|. GIVEN interface frameTooShorts errors is |0|. WHEN interface frameTooShortserrors is |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters errors| is: Port FCS Align Symbol Rx Runts Giants Tx Et1 0 0 0 0 0 0 0 Et2 0 0 0 0 0 0 0 Et100 0 0 0 0 0 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_counters_has_frame_too_short_errors_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters errors| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters errors| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 63.2 kbps (- with framing overhead), 64 packets/sec\n 5 minutes output rate 143 kbps (- with framing overhead), 76 packets/sec\n 119690374 packets input, 14194433394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 140872710 packets output, 29875711696 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 94.4 kbps (- with framing overhead), 61 packets/sec\n 5 minutes output rate 51.7 kbps (- with framing overhead), 53 packets/sec\n 130337624 packets input, 21305235270 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 118083820 packets output, 13260372096 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 3 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 4 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 23 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 27 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 5 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 19 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_frame_too_short_errors_on_ exists in results file at index 1 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_counters_has_frame_too_short_errors_on_ with parameters {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 63.2 kbps (- with framing overhead), 64 packets/sec\n 5 minutes output rate 143 kbps (- with framing overhead), 76 packets/sec\n 119690374 packets input, 14194433394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 140872710 packets output, 29875711696 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 94.4 kbps (- with framing overhead), 61 packets/sec\n 5 minutes output rate 51.7 kbps (- with framing overhead), 53 packets/sec\n 130337624 packets input, 21305235270 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 118083820 packets output, 13260372096 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 3 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 4 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 23 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 27 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 5 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 19 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_counters_has_frame_too_short_errors_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_counters_has_frame_too_short_errors_on_ exists in results file at index 1 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/logging/test_logging.py::LoggingTests::test_if_log_messages_appear_on_[kg-topology-CloudEOSEdge2] | Verify local log messages | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| message |critical| NOT found in local log On router |kg-topology-CloudEOSEdge2| message |warning| NOT found in local log On router |kg-topology-CloudEOSEdge2| message |ECC| NOT found in local log On router |kg-topology-CloudEOSEdge2| message |servers errors| NOT found in local log On router |kg-topology-CloudEOSEdge2| message |parity| NOT found in local log -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_logging.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_log_messages_appear_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show logging| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show logging| on kg-topology-CloudEOSEdge2 INFO root:test_logging.py:74 TEST for local log message critical on |kg-topology-CloudEOSEdge2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 20:27:39 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:27:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:28:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:30:59 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:31:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:29 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:50 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:36:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:37:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:55 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:51:05 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:51:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:53:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:14 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:54:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:57:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:58:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:54 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 21:03:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message warning on |kg-topology-CloudEOSEdge2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 20:27:39 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:27:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:28:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:30:59 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:31:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:29 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:50 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:36:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:37:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:55 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:51:05 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:51:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:53:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:14 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:54:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:57:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:58:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:54 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 21:03:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message ECC on |kg-topology-CloudEOSEdge2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 20:27:39 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:27:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:28:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:30:59 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:31:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:29 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:50 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:36:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:37:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:55 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:51:05 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:51:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:53:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:14 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:54:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:57:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:58:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:54 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 21:03:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message servers errors on |kg-topology-CloudEOSEdge2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 20:27:39 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:27:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:28:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:30:59 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:31:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:29 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:50 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:36:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:37:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:55 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:51:05 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:51:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:53:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:14 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:54:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:57:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:58:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:54 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 21:03:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] INFO root:test_logging.py:74 TEST for local log message parity on |kg-topology-CloudEOSEdge2| INFO root:test_logging.py:86 THEN test case result is |Passed| INFO root:test_logging.py:87 OUTPUT of |show logging| is : Syslog logging: enabled Buffer logging: level debugging Console logging: level errors Persistent logging: disabled Monitor logging: level errors Synchronous logging: disabled Trap logging: level informational Sequence numbers: disabled Syslog facility: local4 Hostname format: Hostname only Repeat logging interval: disabled Repeat messages: disabled Facility Severity Effective Severity -------------------- ------------- ------------------ aaa debugging debugging accounting debugging debugging acl debugging debugging agent debugging debugging ale debugging debugging arp debugging debugging bfd debugging debugging bgp debugging debugging bmp debugging debugging capacity debugging debugging capi debugging debugging clear debugging debugging cvx debugging debugging dataplane debugging debugging dhcp debugging debugging dot1x debugging debugging dscp debugging debugging envmon debugging debugging eth debugging debugging eventmon debugging debugging extension debugging debugging fhrp debugging debugging flow debugging debugging forwarding debugging debugging fru debugging debugging fwk debugging debugging gmp debugging debugging hardware debugging debugging health debugging debugging httpservice debugging debugging igmp debugging debugging igmpsnooping debugging debugging int debugging debugging intf debugging debugging ip6routing debugging debugging iprib debugging debugging ira debugging debugging isis debugging debugging kernelfib debugging debugging lacp debugging debugging lag debugging debugging launcher debugging debugging ldp debugging debugging license debugging debugging lineproto debugging debugging lldp debugging debugging loadbalancer debugging debugging logmgr debugging debugging loopback debugging debugging loopprotect debugging debugging mapreducemonitor debugging debugging mcs debugging debugging mirroring debugging debugging mka debugging debugging mlag debugging debugging mldsnooping debugging debugging mmode debugging debugging mroute debugging debugging mrp debugging debugging msdp debugging debugging msrp debugging debugging msspolicymonitor debugging debugging mvrp debugging debugging nat debugging debugging openconfig debugging debugging openflow debugging debugging ospf debugging debugging ospf3 debugging debugging package debugging debugging pfc debugging debugging pimbsr debugging debugging portsecurity debugging debugging ptp debugging debugging pwrmgmt debugging debugging qos debugging debugging queuemonitor debugging debugging radius debugging debugging redundancy debugging debugging rib debugging debugging routing debugging debugging security debugging debugging servermonitor debugging debugging spantree debugging debugging sso debugging debugging stagemgr debugging debugging sys debugging debugging sysdb debugging debugging tapagg debugging debugging tcp debugging debugging transceiver debugging debugging tunnel debugging debugging tunnelintf debugging debugging vmtracersess debugging debugging vmwarevi debugging debugging vmwarevs debugging debugging vrf debugging debugging vrrp debugging debugging vxlan debugging debugging xmpp debugging debugging ztp debugging debugging Log Buffer: Sep 18 20:27:39 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:27:58 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:28:04 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:30:59 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:31:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:31:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:02 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:29 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:33:50 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:33:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:36:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:18 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:37:38 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:37:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:01 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:28 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:45:48 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:45:55 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:50:17 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:50:44 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:51:05 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:51:13 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:53:47 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:14 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:54:34 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:54:42 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:57:56 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:25 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 20:58:49 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] Sep 18 20:58:54 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGOUT: user kgrozis logged out [from: 173.79.124.35] [service: command-api] Sep 18 21:03:15 kg-topology-CloudEOSEdge2 Aaa: %AAA-5-LOGIN: user kgrozis logged in [from: 173.79.124.35] [service: command-api] | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/ntp/test_ntp.py::NTPTests::test_if_process_is_running_on_[kg-topology-CloudEOSEdge2] | Verify ntp processes are running | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| has |1| process for ntpd -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_process_is_running_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show processes| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show processes| on kg-topology-CloudEOSEdge2 INFO root:test_ntp.py:148 TEST is ntpd running on |kg-topology-CloudEOSEdge2| INFO root:test_ntp.py:149 GIVEN ntpd state is |1| INFO root:test_ntp.py:155 WHEN ntpd number is |1| INFO root:test_ntp.py:158 THEN test case result is |True| INFO root:test_ntp.py:159 OUTPUT of |show processes| is : 21:03:29 up 36 days, 19:45, 0 users, load average: 1.17, 1.28, 1.37 PID %CPU %MEM TT STAT STARTED TIME CMD 2025 101 3.7 ? Sl Aug 13 37-08:33:41 Sfe 16716 4.2 0.9 ? SNl 20:45:07 00:00:46 python2.7 /var/awslogs/bin/aws logs push --config-file /mnt/flash/awslogs/awslogs.conf --additional-configs-dir /mnt/flash/awslogs/config 1675 2.5 2.1 ? Sl Aug 13 22:47:33 /usr/bin/TerminAttr -cvaddr=apiserver.arista.io:443 -cvcompression=gzip -cvauth=token-secure,/tmp/token -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata-ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -cvvrf=default -cvsourceip=11.201.15.101 -taillogs -grpcaddr=0.0.0.0:6042 1476 0.3 2.6 ? S Aug 13 02:45:19 Sysdb 1518 0.3 7.6 ? Sl Aug 13 03:20:06 ConfigAgent 1243 0.2 0.9 ? S Aug 13 02:11:16 ProcMgr-worker 1951 0.2 1.7 ? S Aug 13 01:52:19 IpRib 1703 0.1 1.7 ? S Aug 13 01:08:09 SuperServer 1719 0.1 1.2 ? S Aug 13 00:56:25 StpTxRx 1727 0.1 1.0 ? S Aug 13 01:44:48 AgentMonitor 1980 0.1 2.3 ? Sl Aug 13 01:08:51 Bgp 3369 0.1 1.4 ? S Aug 13 01:42:38 Fhrp 1 0.0 0.0 ? Ss Aug 13 00:07:52 /sbin/init 2 0.0 0.0 ? S Aug 13 00:00:00 [kthreadd] 3 0.0 0.0 ? S Aug 13 00:00:20 [ksoftirqd/0] 5 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:0H] 7 0.0 0.0 ? S Aug 13 00:00:32 [rcu_preempt] 8 0.0 0.0 ? S Aug 13 00:00:00 [rcu_sched] 9 0.0 0.0 ? S Aug 13 00:00:00 [rcu_bh] 10 0.0 0.0 ? S Aug 13 00:00:00 [migration/0] 11 0.0 0.0 ? S< Aug 13 00:00:00 [lru-add-drain] 12 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/0] 13 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/0] 14 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/1] 15 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/1] 16 0.0 0.0 ? S Aug 13 00:00:00 [migration/1] 17 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/1] 18 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:0] 19 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:0H] 20 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/2] 21 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/2] 22 0.0 0.0 ? S Aug 13 00:00:00 [migration/2] 23 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/2] 24 0.0 0.0 ? S Aug 13 00:00:00 [kworker/2:0] 25 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/2:0H] 26 0.0 0.0 ? S Aug 13 00:00:00 [cpuhp/3] 27 0.0 0.0 ? S Aug 13 00:00:00 [watchdog/3] 28 0.0 0.0 ? S Aug 13 00:00:00 [migration/3] 29 0.0 0.0 ? S Aug 13 00:00:00 [ksoftirqd/3] 30 0.0 0.0 ? S Aug 13 00:00:00 [kworker/3:0] 31 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/3:0H] 32 0.0 0.0 ? S Aug 13 00:00:00 [kdevtmpfs] 33 0.0 0.0 ? S< Aug 13 00:00:00 [netns] 34 0.0 0.0 ? S Aug 13 00:00:00 [khungtaskd] 35 0.0 0.0 ? S Aug 13 00:00:22 [khungtaskd2] 36 0.0 0.0 ? S Aug 13 00:00:00 [oom_reaper] 37 0.0 0.0 ? S< Aug 13 00:00:00 [writeback] 38 0.0 0.0 ? S Aug 13 00:00:00 [kcompactd0] 39 0.0 0.0 ? S< Aug 13 00:00:00 [crypto] 40 0.0 0.0 ? S< Aug 13 00:00:00 [kintegrityd] 41 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 42 0.0 0.0 ? S< Aug 13 00:00:00 [kblockd] 43 0.0 0.0 ? S< Aug 13 00:00:00 [ata_sff] 44 0.0 0.0 ? S< Aug 13 00:00:00 [edac-poller] 45 0.0 0.0 ? S Aug 13 00:00:00 [dst_gc_task] 46 0.0 0.0 ? S< Aug 13 00:00:00 [watchdogd] 47 0.0 0.0 ? S Aug 13 00:00:00 [arp_cache-prd] 49 0.0 0.0 ? S Aug 13 00:00:00 [icmp_unreachabl] 50 0.0 0.0 ? S< Aug 13 00:00:00 [rpciod] 51 0.0 0.0 ? S< Aug 13 00:00:00 [xprtiod] 52 0.0 0.0 ? S Aug 13 00:00:00 [kswapd0] 53 0.0 0.0 ? S< Aug 13 00:00:00 [vmstat] 54 0.0 0.0 ? S< Aug 13 00:00:00 [nfsiod] 63 0.0 0.0 ? S< Aug 13 00:00:00 [pcielwd] 64 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 65 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 66 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 67 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 68 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 69 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 70 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 71 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 72 0.0 0.0 ? S< Aug 13 00:00:00 [nvme] 73 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:1] 74 0.0 0.0 ? S Aug 13 00:00:00 [ndisc_cache-prd] 75 0.0 0.0 ? S< Aug 13 00:00:00 [ipv6_addrconf] 76 0.0 0.0 ? S< Aug 13 00:00:00 [ecc_log_wq] 124 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 125 0.0 0.0 ? S< Aug 13 00:00:00 [bioset] 171 0.0 0.0 ? S Aug 13 00:00:01 [jbd2/nvme0n1p1-] 172 0.0 0.0 ? S< Aug 13 00:00:00 [ext4-rsv-conver] 194 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/0:1H] 272 0.0 0.0 ? S< Aug 13 00:00:00 [loop0] 378 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/lib/systemd/systemd-udevd 410 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/lvmetad -f 497 0.0 0.0 ? S< Aug 13 00:00:00 [ena] 746 0.0 0.0 ? Ss Aug 13 00:03:44 /usr/lib/systemd/systemd-logind 752 0.0 0.0 ? Ss Aug 13 00:01:06 /usr/bin/ProcMonitor 762 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground 770 0.0 0.1 ? Ss Aug 13 00:05:43 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 784 0.0 0.0 ? S Aug 13 00:00:00 [kworker/1:1] 790 0.0 0.0 ? Ss Aug 13 00:00:06 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 880 0.0 0.0 ? Ss Aug 13 00:00:21 /usr/sbin/crond -n 889 0.0 0.0 ? S<s Aug 13 00:00:27 /usr/bin/wdogdev -t 60 998 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/local.new . && mv /mnt/flash/persist/local.new /mnt/flash/persist/local || logger -t SetupPersist Failed to update /mnt/flash/persist/local --daemon --logfile=/var/log/inotifyrun-local.log --pidfile=/var/run/inotifyrun-local.pid /persist/local 1000 0.0 0.0 pts/0 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1015 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/bin/SaveFossil --dedup --compress --priority Sysdb --maxFiles 1000 /var/tmp/Fossil /mnt/flash/Fossil 1019 0.0 0.0 ? S Aug 13 00:00:03 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/sys.new . && mv /mnt/flash/persist/sys.new /mnt/flash/persist/sys || logger -t SetupPersist Failed to update /mnt/flash/persist/sys --daemon --logfile=/var/log/inotifyrun-sys.log --pidfile=/var/run/inotifyrun-sys.pid /persist/sys 1021 0.0 0.0 pts/1 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1030 0.0 0.0 ? S Aug 13 00:00:00 python /usr/bin/inotifyrun -c pax -x sv4cpio -O -w -f /mnt/flash/persist/secure.new . && sync && ( mv /mnt/flash/persist/secure /mnt/flash/persist/secure.old; mv /mnt/flash/persist/secure.new /mnt/flash/persist/secure; sync ) && ( scrub --no-signature /mnt/flash/persist/secure.old; rm /mnt/flash/persist/secure.old ) || logger -t SetupPersist Failed to update /mnt/flash/persist/secure --daemon --logfile=/var/log/inotifyrun-secure.log --pidfile=/var/run/inotifyrun-secure.pid /persist/secure 1031 0.0 0.0 pts/2 Ss+ Aug 13 00:00:00 inotifywait -m -r -e modify -e create -e delete -e attrib -e move . 1062 0.0 0.0 ? Ss Aug 13 00:00:00 /bin/bash /usr/sbin/core_annotate_util daemon 1189 0.0 0.1 ? S Aug 13 00:00:00 python /bin/immortalize --daemonize --log=/var/log/agents/ConnMgr --logappend --logpidsuffix --maxcredits=5 --cost=1 --immortalizepidfile=/var/run/ImmortalizeConnMgr.pid /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1190 0.0 0.1 ? S Aug 13 00:00:00 /usr/bin/ConnMgr -p /var/run/ConnMgr.pid 1224 0.0 0.0 ? S Aug 13 00:00:00 inotifywait -e modify /var/lib/rpm 1226 0.0 0.3 ? S Aug 13 00:00:00 netnsd-watcher -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1228 0.0 0.3 ? S Aug 13 00:00:00 netnsd-server -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1242 0.0 0.9 ? S Aug 13 00:00:00 ProcMgr-master 1415 0.0 0.0 ? S Aug 13 00:12:28 /usr/bin/EosOomAdjust 1423 0.0 0.0 ? S Aug 13 00:00:03 [rbfd_vrf_cleanu] 1438 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/sbin/acpid 1475 0.0 0.0 ? S Aug 13 00:02:53 /usr/bin/SlabMonitor 1517 0.0 1.2 ? S Aug 13 00:06:19 StageMgr 1521 0.0 1.4 ? S Aug 13 00:22:20 Fru 1524 0.0 1.8 ? S Aug 13 00:11:07 Launcher 1651 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lldp --demuxerOpts=279603612376,279603122369,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lldp 1653 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1654 0.0 1.3 ? S Aug 13 00:30:26 Lldp 1657 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon --demuxerOpts=279725388188,279650445982,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon 1659 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1661 0.0 1.2 ? S Aug 13 00:22:34 McastCommon 1665 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PortSec --demuxerOpts=279886274558,279754810922,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PortSec 1666 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1668 0.0 1.1 ? S Aug 13 00:24:37 PortSec 1669 0.0 0.0 ? S< Aug 13 00:00:00 [kworker/1:1H] 1696 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Bfd --demuxerOpts=283657265762,283482593841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Bfd 1698 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1699 0.0 1.4 ? S Aug 13 00:24:03 Bfd 1700 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Lag --demuxerOpts=287819325384,287795062523,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Lag 1701 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1702 0.0 1.3 ? S Aug 13 00:44:43 Lag 1707 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ira --demuxerOpts=288347310924,288297455705,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ira 1708 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1709 0.0 1.5 ? S Aug 13 00:22:49 Ira 1710 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LedPolicy --demuxerOpts=292586167457,292268884394,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LedPolicy 1712 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1713 0.0 1.2 ? S Aug 13 00:26:57 LedPolicy 1714 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=EventMgr --demuxerOpts=292780957018,292649411528,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/EventMgr 1715 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1716 0.0 1.3 ? S Aug 13 00:29:46 EventMgr 1717 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTxRx --demuxerOpts=293034015438,292843558270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTxRx 1718 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1721 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StandbyCpld --demuxerOpts=296572620123,296400986578,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StandbyCpld 1723 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1724 0.0 1.1 ? S Aug 13 00:06:22 StandbyCpld 1725 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=AgentMonitor --demuxerOpts=296770445824,296638057211,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/AgentMonitor 1726 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1729 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Tunnel --demuxerOpts=296984960239,296854805708,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Tunnel 1730 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1731 0.0 1.2 ? S Aug 13 00:10:20 Tunnel 1732 0.0 1.6 ? Sl Aug 13 00:18:10 Aaa 1734 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StpTopology --demuxerOpts=300919938207,300696082381,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StpTopology 1735 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1736 0.0 1.2 ? S Aug 13 00:22:42 StpTopology 1738 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Acl --demuxerOpts=301331916824,300996693213,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Acl 1741 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1743 0.0 1.4 ? S Aug 13 00:50:07 Acl 1753 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Stp --demuxerOpts=305107266403,301413423552,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Stp 1756 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1759 0.0 1.1 ? S Aug 13 00:36:35 Stp 1776 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelNetworkInfo --demuxerOpts=305360891096,305329042634,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelNetworkInfo 1778 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1780 0.0 1.1 ? S Aug 13 00:07:27 KernelNetworkInfo 1785 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=McastCommon6 --demuxerOpts=305785444216,305760706994,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/McastCommon6 1788 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1789 0.0 1.2 ? S Aug 13 00:22:38 McastCommon6 1799 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LacpTxAgent --demuxerOpts=309366624983,309362176094,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LacpTxAgent 1803 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1805 0.0 1.2 ? S Aug 13 00:22:51 LacpTxAgent 1816 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Arp --demuxerOpts=310181868541,309815745751,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Arp 1820 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1823 0.0 1.5 ? S Aug 13 00:33:52 Arp 1838 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=KernelFib --demuxerOpts=314049547173,313613369111,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/KernelFib 1843 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1846 0.0 1.4 ? S Aug 13 00:22:46 KernelFib 1848 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Qos --demuxerOpts=314264185905,314224873925,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Qos 1851 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Thermostat --demuxerOpts=318320799164,318320334301,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Thermostat 1852 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1854 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1855 0.0 1.2 ? S Aug 13 00:25:38 Qos 1856 0.0 1.1 ? S Aug 13 00:07:28 Thermostat 1857 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=L2Rib --demuxerOpts=318504392051,318402053905,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/L2Rib 1860 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1861 0.0 1.2 ? S Aug 13 00:07:29 L2Rib 1862 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=TopoAgent --demuxerOpts=318751447473,318604181270,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/TopoAgent --scheduled 1863 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1864 0.0 1.2 ? S Aug 13 00:22:38 TopoAgent 1866 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerFuse --demuxerOpts=322455034859,322155642338,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerFuse 1867 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1868 0.0 1.1 ? S Aug 13 00:06:20 PowerFuse 1869 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=PowerManager --demuxerOpts=322587808158,322578809808,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/PowerManager 1870 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1871 0.0 1.1 ? S Aug 13 00:06:20 PowerManager 1873 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ebra --demuxerOpts=323042777435,322918823692,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ebra 1874 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1877 0.0 1.4 ? S Aug 13 00:29:08 Ebra 1891 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ReloadCauseAgent --demuxerOpts=326873611161,326505655736,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ReloadCauseAgent 1892 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1893 0.0 1.1 ? S Aug 13 00:06:21 ReloadCauseAgent 1894 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=SharedSecretProfile --demuxerOpts=327049023399,326947638167,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/SharedSecretProfile 1899 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1901 0.0 1.1 ? S Aug 13 00:06:21 SharedSecretProfile 1905 0.0 1.5 ? S Aug 13 00:22:56 IgmpSnooping 1934 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=StaticRoute --demuxerOpts=331109407249,331039454504,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/StaticRoute --scheduled 1937 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1944 0.0 1.3 ? S Aug 13 00:07:28 StaticRoute 1949 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=IpRib --demuxerOpts=331478251055,331216741841,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/IpRib --scheduled 1950 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1953 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=BgpCliHelper --demuxerOpts=331572043702,331571419321,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/BgpCliHelper --scheduled 1954 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1956 0.0 1.9 ? S Aug 13 00:07:38 BgpCliHelper 1957 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=ConnectedRoute --demuxerOpts=335410314406,335272307760,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/ConnectedRoute 1958 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1959 0.0 1.3 ? S Aug 13 00:22:53 ConnectedRoute 1962 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=RouteInput --demuxerOpts=335932354218,335526352897,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/RouteInput 1963 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 1968 0.0 1.3 ? S Aug 13 00:07:29 RouteInput 2011 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Sfe --demuxerOpts=343638383733,339942676958,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Sfe 2014 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2319 0.0 0.0 ? Ssl Aug 13 00:00:34 /usr/sbin/rsyslogd -n 2592 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=LicenseManager --demuxerOpts=387516644822,387516174371,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/LicenseManager 2596 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2597 0.0 1.1 ? S Aug 13 00:06:22 LicenseManager 2614 0.0 0.0 ? S Aug 13 00:00:00 /usr/bin/conlogd 2615 0.0 0.0 tty1 Ss+ Aug 13 00:00:00 /sbin/agetty --noclear tty1 linux 2616 0.0 0.0 ttyS0 Ss+ Aug 13 00:00:00 /sbin/mingetty --noclear /dev/ttyS0 2633 0.0 0.0 ? S Aug 13 00:00:00 sh -c /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console | sed 's/\(.*\)/\1\r/' 2638 0.0 0.0 ? S Aug 13 00:01:12 /usr/bin/tail -n 0 --retry --follow=name --pid=2614 /var/log/eos-console 2639 0.0 0.0 ? S Aug 13 00:00:00 sed s/\(.*\)/\1\r/ 2666 0.0 0.0 ? Zs Aug 13 00:00:00 [SuperServer] <defunct> 2695 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Ipsec --demuxerOpts=408586225606,408585707942,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Ipsec 2696 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 2697 0.0 1.2 ? S Aug 13 00:47:09 Ipsec 2699 0.0 0.4 ? Ss Aug 13 00:00:02 dhclient -e SYSNAME=ar -e SYSDBSOCKNAME=sysdb -e VRFNAME=default -sf /etc/dhcp/dhclient-script.py -pf /var/run/dhclient-default.pid -cf /etc/dhcp/dhclient-default.conf -lf /var/lib/dhclient/dhclient-default.leases -e et1=Ethernet1 2726 0.0 0.1 ? Ssl Aug 13 00:02:54 ntpd -u ntp:ntp -g -p /var/run/ntpd.pid 2730 0.0 0.0 ? Ss Aug 13 00:00:00 fusermount -o rw,nosuid,nodev,allow_other,auto_unmount,subtype=MfibFuse -- /BessProc 3232 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Nat --demuxerOpts=1099846842576,1099845884354,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Nat 3237 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3242 0.0 1.2 ? S Aug 13 00:50:00 Nat 3254 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Vxlan --demuxerOpts=1100211266267,1100011505404,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Vxlan 3257 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3263 0.0 1.4 ? S Aug 13 00:23:55 Vxlan 3275 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=VxlanSwFwd --demuxerOpts=1104023511318,1100341538690,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/VxlanSwFwd 3277 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3278 0.0 1.4 ? S Aug 13 00:25:09 VxlanSwFwd 3315 0.0 0.0 ? Ss Aug 13 00:00:00 /usr/libexec/strongswan/starter --daemon charon 3317 0.0 0.1 ? Ssl Aug 13 00:03:46 /usr/libexec/strongswan/charon --use-syslog 3367 0.0 0.0 ? S Aug 13 00:00:00 netns --agenttitle=Fhrp --demuxerOpts=1113312651255,1113311572347,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/Fhrp --scheduled 3368 0.0 0.3 ? Ss Aug 13 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 3856 0.0 0.0 ? S Aug 13 00:00:03 [kworker/u8:0] 3977 0.0 0.0 ? S Aug 13 00:00:01 /usr/sbin/dnsmasq 12089 0.0 0.0 ? S 20:30:01 00:00:00 [kworker/0:4] 16200 0.0 0.0 ? S 20:42:01 00:00:00 [kworker/0:0] 16674 0.0 0.0 ? S 20:45:06 00:00:00 /bin/sh /var/awslogs/bin/awslogs-agent-launcher.sh 19259 0.0 0.0 ? S 20:53:00 00:00:00 [kworker/0:2] 21869 0.0 0.0 ? S 20:59:00 00:00:00 [kworker/0:1] 22584 0.0 0.0 ? Rs 21:03:28 00:00:00 ps -e -o pid,pcpu,pmem,tt,stat,lstart,start,time,cmd --sort=-pcpu -ww 22585 0.0 0.0 ? Zs 21:03:28 00:00:00 [uptime] <defunct> 26289 0.0 0.0 ? S Aug 26 00:00:00 netns --agenttitle=CapiApp --demuxerOpts=5050641215580694,5050641215085095,tbl://sysdb/+n,Sysdb (pid:1476) --sysdbfd=7 --dlopen procmgr /usr/bin/CapiApp --ini /etc/uwsgi/CapiApp.ini 26290 0.0 0.3 ? Ss Aug 26 00:00:00 netnsd-session -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26291 0.0 1.3 ? Sl Aug 26 00:06:47 CapiApp -d -i --dlopen -p -f -l libLoadDynamicLibs.so procmgr libProcMgrSetup.so --daemonize 26335 0.0 0.0 ? Ss Aug 26 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf -g pid /var/run/nginx.pid; 26337 0.0 0.1 ? S Aug 26 00:02:56 nginx: worker process | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_out_counters_are_discarding_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no outDiscards | 2.53 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0| TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| GIVEN interface outbound discards are |0| WHEN interface outbound discards are |0| THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 - On interface |Ethernet2|: interface counter discards has |0| outDiscards, correct state is |0| TEST if interface |Ethernet2| counters has outbound discards on |kg-topology-CloudEOSEdge2| GIVEN interface outbound discards are |0| WHEN interface outbound discards are |0| THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_out_counters_are_discarding_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 63.2 kbps (- with framing overhead), 64 packets/sec\n 5 minutes output rate 143 kbps (- with framing overhead), 76 packets/sec\n 119690374 packets input, 14194433394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 140872710 packets output, 29875711696 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 94.4 kbps (- with framing overhead), 61 packets/sec\n 5 minutes output rate 51.7 kbps (- with framing overhead), 53 packets/sec\n 130337624 packets input, 21305235270 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 118083820 packets output, 13260372096 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 3 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 4 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 23 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 27 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 5 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 19 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_out_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_out_counters_are_discarding_on_ exists in results file at index 9 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_out_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 63.2 kbps (- with framing overhead), 64 packets/sec\n 5 minutes output rate 143 kbps (- with framing overhead), 76 packets/sec\n 119690374 packets input, 14194433394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 140872710 packets output, 29875711696 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 94.4 kbps (- with framing overhead), 61 packets/sec\n 5 minutes output rate 51.7 kbps (- with framing overhead), 53 packets/sec\n 130337624 packets input, 21305235270 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 118083820 packets output, 13260372096 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 3 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 4 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 23 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 27 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 5 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 19 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_out_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_out_counters_are_discarding_on_ exists in results file at index 9 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_sending_messages_on_[kg-topology-CloudEOSEdge2] | Verify tacacs messages are sending correctly | 0.00 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_tacacs_is_sending_messages_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show tacacs| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:396 Verify if tacacs server(s) are configured on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:402 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:73 TEST is |kg-topology-CloudEOSEdge2| sending messages to TACACS server | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/tacacs/test_tacacs.py::TacacsTests::test_if_tacacs_is_receiving_messages_on_[kg-topology-CloudEOSEdge2] | Verify tacacs messages are received correctly | 0.00 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| does not have TACACS servers configured -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_tacacs.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_tacacs_is_receiving_messages_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show tacacs| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show tacacs| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:396 Verify if tacacs server(s) are configured on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:402 0 tacacs serverws are configured so returning False INFO root:test_tacacs.py:136 TEST is |kg-topology-CloudEOSEdge2| receiving messages to TACACS server | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/ztp/test_ztp.py::ZTPTests::test_if_zerotouch_is_disabled_on_[kg-topology-CloudEOSEdge2] | Verify ztp is disabled | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| ZTP process is in mode: |disabled| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_zerotouch_is_disabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show zerotouch| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show zerotouch| on kg-topology-CloudEOSEdge2 INFO root:test_ztp.py:71 TEST is ZTP disabled on |kg-topology-CloudEOSEdge2| INFO root:test_ztp.py:72 GIVEN ZTP state is |disabled| INFO root:test_ztp.py:78 WHEN ZTP state is |disabled| INFO root:test_ztp.py:81 THEN test case result is |True| INFO root:test_ztp.py:82 OUTPUT of |show zerotouch| is : ZeroTouch Mode: Disabled Script Exec Timeout: 900 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/interface/test_interface.py::InterfaceDiscardTests::test_if_intf_in_counters_are_discarding_on_[kg-topology-CloudEOSEdge2] | Verify the interfaces of interest have no inDiscards | 2.67 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0| TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge2|. GIVEN interface inbound discards are |0|. WHEN interface inbound discards are |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 - On interface |Ethernet2|: interface counter discards has |0| inDiscards, correct state is |0| TEST if interface |Ethernet2| counters has inbound discards on |kg-topology-CloudEOSEdge2|. GIVEN interface inbound discards are |0|. WHEN interface inbound discards are |0|. THEN test case result is |True|. OUTPUT of |show interfaces counters discards| is: Port InDiscards OutDiscards --------------- ---------------- ----------- Et1 0 0 Et2 0 0 Et100 0 0 --------- --------- --------- Totals 0 0 -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_interface.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_intf_in_counters_are_discarding_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'} INFO root:tests_tools.py:372 Verify if show command |show interfaces counters discards| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show interfaces counters discards| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 63.2 kbps (- with framing overhead), 64 packets/sec\n 5 minutes output rate 143 kbps (- with framing overhead), 76 packets/sec\n 119690374 packets input, 14194433394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 140872710 packets output, 29875711696 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 94.4 kbps (- with framing overhead), 61 packets/sec\n 5 minutes output rate 51.7 kbps (- with framing overhead), 53 packets/sec\n 130337624 packets input, 21305235270 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 118083820 packets output, 13260372096 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 3 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 4 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 23 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 27 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 5 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 19 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_in_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_in_counters_are_discarding_on_ exists in results file at index 7 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_intf_in_counters_are_discarding_on_ with parameters {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards', 'test_suite': 'test_interface.py', 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'actual_output': 0, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_interface.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 63.2 kbps (- with framing overhead), 64 packets/sec\n 5 minutes output rate 143 kbps (- with framing overhead), 76 packets/sec\n 119690374 packets input, 14194433394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 140872710 packets output, 29875711696 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 94.4 kbps (- with framing overhead), 61 packets/sec\n 5 minutes output rate 51.7 kbps (- with framing overhead), 53 packets/sec\n 130337624 packets input, 21305235270 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 118083820 packets output, 13260372096 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 3 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 4 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 23 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 27 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 5 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 19 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_interface.py exists in results file at index 0 INFO root:tests_tools.py:535 Find Index for test case: test_if_intf_in_counters_are_discarding_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_intf_in_counters_are_discarding_on_ exists in results file at index 7 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/ztp/test_ztp.py::ZTPTests::test_for_zerotouch_config_file_on_[kg-topology-CloudEOSEdge2] | Verify zerotoucn-config file is on flash | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| ZTP configuration file is on flash: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ztp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_for_zerotouch_config_file_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |dir flash:zerotouch-config| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |dir flash:zerotouch-config| on kg-topology-CloudEOSEdge2 INFO root:test_ztp.py:106 TEST is ZTP configuration file is on |kg-topology-CloudEOSEdge2| INFO root:test_ztp.py:107 GIVEN ZTP configuration file is |True| INFO root:test_ztp.py:113 WHEN ZTP configuration file is |True| INFO root:test_ztp.py:116 THEN test case result is |True| INFO root:test_ztp.py:117 OUTPUT of |dir flash:zerotouch-config| is : Directory of flash:/zerotouch-config -rw- 13 Mar 30 23:38 zerotouch-config 8319852544 bytes total (7291584512 bytes free) | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_is_synchronized_on_[kg-topology-CloudEOSEdge2] | Verify ntp is synchronzied | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| NTP synchronized status is: |True| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_ntp_is_synchronized_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show ntp status| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show ntp status| on kg-topology-CloudEOSEdge2 INFO root:test_ntp.py:70 TEST is NTP synchronized on |kg-topology-CloudEOSEdge2| INFO root:test_ntp.py:71 GIVEN NTP synchronized is |True| INFO root:test_ntp.py:77 WHEN NTP configuration file is |True| INFO root:test_ntp.py:80 THEN test case result is |True| INFO root:test_ntp.py:81 OUTPUT of |show ntp status| is : synchronised to NTP server (169.254.169.123) at stratum 4 time correct to within 29 ms polling server every 1024 s | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/lldp/test_lldp.py::LldpTests::test_if_lldp_rx_is_enabled_on_[kg-topology-CloudEOSEdge2] | Verify LLDP receive is enabled on interesting interfaces | 3.05 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2|: - On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True| TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge2|. GIVEN LLDP receive state is |True|. WHEN LLDP receive state is |True|. THEN test case result is |True|. OUTPUT of |show lldp| is: LLDP transmit interval : 30 seconds LLDP transmit holdtime : 120 seconds LLDP reinitialization delay : 2 seconds LLDP Management Address VRF : default Enabled optional TLVs: Port Description System Name System Description System Capabilities Management Address (best) IEEE802.1 Port VLAN ID IEEE802.3 Link Aggregation IEEE802.3 Maximum Frame Size IEEE802.3 Power Via MDI LLDP-MED Capabilities LLDP-MED Network Policy Port Tx Enabled Rx Enabled ----------- ---------------- ---------- Et1 Yes Yes Et2 Yes Yes Et100 Yes Yes - On interface |Ethernet2|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True| TEST if interface |Ethernet2| LLDP receive is enabled on |kg-topology-CloudEOSEdge2|. GIVEN LLDP receive state is |True|. WHEN LLDP receive state is |True|. THEN test case result is |True|. OUTPUT of |show lldp| is: LLDP transmit interval : 30 seconds LLDP transmit holdtime : 120 seconds LLDP reinitialization delay : 2 seconds LLDP Management Address VRF : default Enabled optional TLVs: Port Description System Name System Description System Capabilities Management Address (best) IEEE802.1 Port VLAN ID IEEE802.3 Link Aggregation IEEE802.3 Maximum Frame Size IEEE802.3 Power Via MDI LLDP-MED Capabilities LLDP-MED Network Policy Port Tx Enabled Rx Enabled ----------- ---------------- ---------- Et1 Yes Yes Et2 Yes Yes Et100 Yes Yes -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_if_lldp_rx_is_enabled_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_lldp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_lldp_rx_is_enabled_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'} INFO root:tests_tools.py:372 Verify if show command |show lldp| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show lldp| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:520 Find the Index for test suite: test_lldp.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 63.2 kbps (- with framing overhead), 64 packets/sec\n 5 minutes output rate 143 kbps (- with framing overhead), 76 packets/sec\n 119690374 packets input, 14194433394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 140872710 packets output, 29875711696 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 94.4 kbps (- with framing overhead), 61 packets/sec\n 5 minutes output rate 51.7 kbps (- with framing overhead), 53 packets/sec\n 130337624 packets input, 21305235270 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 118083820 packets output, 13260372096 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 3 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 4 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 23 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 27 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 5 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 19 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_lldp.py exists in results file at index 1 INFO root:tests_tools.py:535 Find Index for test case: test_if_lldp_rx_is_enabled_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_lldp_rx_is_enabled_on_ exists in results file at index 0 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge2 to test case test_if_lldp_rx_is_enabled_on_ with parameters {'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp', 'test_suite': 'test_lldp.py', 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'test_result': True, 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'actual_output': True, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} INFO root:tests_tools.py:520 Find the Index for test suite: test_lldp.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 63.2 kbps (- with framing overhead), 64 packets/sec\n 5 minutes output rate 143 kbps (- with framing overhead), 76 packets/sec\n 119690374 packets input, 14194433394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 140872710 packets output, 29875711696 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 94.4 kbps (- with framing overhead), 61 packets/sec\n 5 minutes output rate 51.7 kbps (- with framing overhead), 53 packets/sec\n 130337624 packets input, 21305235270 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 118083820 packets output, 13260372096 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 3 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 4 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 23 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 27 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 5 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 19 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_lldp.py exists in results file at index 1 INFO root:tests_tools.py:535 Find Index for test case: test_if_lldp_rx_is_enabled_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_if_lldp_rx_is_enabled_on_ exists in results file at index 0 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/ntp/test_ntp.py::NTPTests::test_if_ntp_associated_with_peers_on_[kg-topology-CloudEOSEdge2] | Verify ntp peers are correct | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| has |1| NTP peer associations -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_ntp.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_ntp_associated_with_peers_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show ntp associations| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show ntp associations| on kg-topology-CloudEOSEdge2 INFO root:test_ntp.py:104 TEST is NTP associations with peers on |kg-topology-CloudEOSEdge2| INFO root:test_ntp.py:105 GIVEN NTP associated are greater than or equal to |1| INFO root:test_ntp.py:112 WHEN NTP associated peers fare |1| INFO root:test_ntp.py:115 THEN test case result is |True| INFO root:test_ntp.py:116 OUTPUT of |show ntp associations| is : remote refid st t when poll reach delay offset jitter ============================================================================== *169.254.169.123 169.254.169.12 3 l 1 1024 377 0.151 -0.235 0.688 | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/memory/test_memory.py::MemoryTests::test_memory_utilization_on_[kg-topology-CloudEOSEdge2] | Verify memory is not exceeding high utlization | 1.91 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ - On router |kg-topology-CloudEOSEdge2| memory utilization percent is |36.05554261400532%| and should be under |70%| TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge2|. GIVEN memory utilization is less than |70|. WHEN memory utilization is |36.05554261400532|. THEN test case result is |True|. OUTPUT of |show version| is: Arista vEOS Hardware version: Serial number: DE52F26D16E91F22BB1B507175C8C765 System MAC address: 0635.02ca.8297 Software image version: 4.23.1F-cloud-16179785.jakartarel (engineering build) Architecture: x86_64 Internal build version: 4.23.1F-cloud-16179785.jakartarel Internal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809 Uptime: 5 weeks, 1 days, 19 hours and 45 minutes Total memory: 7761392 kB Free memory: 2797264 kB -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:344 Setting testcase name to test_memory_utilization_on_ INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_memory.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_memory_utilization_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show version| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show version| on kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:520 Find the Index for test suite: test_memory.py on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:522 [{'name': 'test_interface.py', 'test_cases': [{'duts': [{'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'connected', 'comment': 'TEST if interface |Ethernet1| link status on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |connected|.\nWHEN interface status is |connected|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'connected', 'fail_reason': '', 'name': 'test_if_intf_link_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link status is set to: |connected|, correct state is |connected|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_link_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooShorts errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooShorts errors is |0|.\nWHEN interface frameTooShortserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooShorts, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_short_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEosRR2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have input errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface input errors is |0|.\nWHEN interface inputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have input errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_input_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| inErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_input_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have symbolErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface symbolErrors errors is |0|.\nWHEN interface symbolErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_symbol_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| symbolErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_symbol_errors_on_'}, {'duts': [{'actual_output': None, 'comment': 'kg-topology-CloudEosRR1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEosRR2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge1 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': None, 'comment': 'kg-topology-CloudEOSEdge2 is vEOS instance. Test is not valid.', 'description': 'Verify the interfaces of interest link statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'linkUp', 'fail_reason': '', 'name': 'test_if_intf_phy_status_connected_on_', 'output_msg': None, 'show_cmd': 'show interfaces phy detail', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_phy_status_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have fcsErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface fcsErrors errors is |0|.\nWHEN interface fcsErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_fcs_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| fcsErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_fcs_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEosRR2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have frameTooLongs errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface frameTooLongs errors is |0|.\nWHEN interface frameTooLongserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| frameTooLongs, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_frame_too_long_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEosRR2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge1|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has inbound discards on |kg-topology-CloudEOSEdge2|.\nGIVEN interface inbound discards are |0|.\nWHEN interface inbound discards are |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no inDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_in_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| inDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_in_counters_are_discarding_on_'}, {'duts': [{'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEosRR2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge1|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 'up', 'comment': 'TEST if interface |Ethernet1| link prootocol statuses on |kg-topology-CloudEOSEdge2|.\nGIVEN interface status is |up|.\nWHEN interface status is |up|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces status| is:\n\nPort Name Status Vlan Duplex Speed Type Flags Encapsulation\nEt1 connected routed full unconf 10/100/1000 \nEt2 connected routed full unconf 10/100/1000 \nEt2.102 connected routed full unconf dot1q-encapsulation 102 \nEt100 connected routed full 10G 10/100/1000 \n\n', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 'up', 'fail_reason': '', 'name': 'test_if_intf_protocol_status_is_connected_on_', 'output_msg': 'On interface |Ethernet1|: interface link line protocol status is set to: |up|, correct state is |up|', 'show_cmd': 'show interfaces status', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_protocol_status_is_connected_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEosRR2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge1| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters has outbound discards on |kg-topology-CloudEOSEdge2| \nGIVEN interface outbound discards are |0|\nWHEN interface outbound discards are |0|\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters discards| is:\n\nPort InDiscards OutDiscards \n--------------- ---------------- ----------- \nEt1 0 0 \nEt2 0 0 \nEt100 0 0 \n--------- --------- --------- \nTotals 0 0 \n\n', 'description': 'Verify the interfaces of interest have no outDiscards', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_out_counters_are_discarding_on_', 'output_msg': 'On interface |Ethernet1|: interface counter discards has |0| outDiscards, correct state is |0|', 'show_cmd': 'show interfaces counters discards', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_out_counters_are_discarding_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEosRR2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| has output errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface output errors is |0|.\nWHEN interface outputerrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest does not have outut errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_output_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| outErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_output_errors_on_'}, {'duts': [{'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEosRR2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge1|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}, {'actual_output': 0, 'comment': 'TEST if interface |Ethernet1| counters have alignmentErrors errors on |kg-topology-CloudEOSEdge2|.\nGIVEN interface alignmentErrors errors is |0|.\nWHEN interface alignmentErrorserrors is |0|.\nTHEN test case result is |True|.\nOUTPUT of |show interfaces counters errors| is:\n\nPort FCS Align Symbol Rx Runts Giants Tx\nEt1 0 0 0 0 0 0 0\nEt2 0 0 0 0 0 0 0\nEt100 0 0 0 0 0 0 0\n', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 0, 'fail_reason': '', 'name': 'test_if_intf_counters_has_alignment_errors_on_', 'output_msg': 'On interface |Ethernet1|: interface counter errors has |0| alignmentErrors, correct state is |0|', 'show_cmd': 'show interfaces counters errors', 'test_result': True, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_counters_has_alignment_errors_on_'}, {'duts': [{'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bbe9.20d4 (bia 0246.bbe9.20d4)\n Internet address is 11.201.12.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 11 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.3 kbps (- with framing overhead), 31 packets/sec\n 5 minutes output rate 64.7 kbps (- with framing overhead), 34 packets/sec\n 71411973 packets input, 8923307841 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 79662041 packets output, 15222720871 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0246.bb59.d5ae (bia 0246.bb59.d5ae)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 9 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.2/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 30 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.36/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 34 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEosRR2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9ba1.1756 (bia 0654.9ba1.1756)\n Internet address is 11.201.13.101/24\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 17 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 34.4 kbps (- with framing overhead), 32 packets/sec\n 5 minutes output rate 65.0 kbps (- with framing overhead), 35 packets/sec\n 72480938 packets input, 9047178758 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 81218701 packets output, 15355078697 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0654.9b7c.b00f (bia 0654.9b7c.b00f)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 15 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.4/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 43 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.38/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 37 seconds\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge1|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d288.21f6 (bia 029e.d288.21f6)\n Internet address is 11.201.14.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 43.7 kbps (- with framing overhead), 42 packets/sec\n 5 minutes output rate 92.4 kbps (- with framing overhead), 47 packets/sec\n 142915339 packets input, 16774522127 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 170050138 packets output, 36345827611 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 023d.7650.e316 (bia 023d.7650.e316)\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 28 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 40.9 kbps (- with framing overhead), 35 packets/sec\n 5 minutes output rate 27.7 kbps (- with framing overhead), 32 packets/sec\n 161292245 packets input, 29335401047 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 142623412 packets output, 16839145488 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 023d.7650.e316\n Internet address is 11.201.14.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 8 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 029e.d20a.bbfc (bia 029e.d20a.bbfc)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 26 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.1/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 53 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.35/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 43 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 8 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 51 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.1\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}, {'actual_output': 1500, 'comment': 'TEST if interface |Ethernet1| MTU is correct on |kg-topology-CloudEOSEdge2|.\nGIVEN MTU of |10178|.\nWHEN interface MTU is |1500|.\nTHEN test case result is |False|.\nOUTPUT of |show interfaces| is:\n\nEthernet1 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.0247.e530 (bia 0635.0247.e530)\n Internet address is 11.201.15.101/25\n Broadcast address is 255.255.255.255\n Address determined by DHCP\n IP MTU 1500 bytes (default)\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 63.2 kbps (- with framing overhead), 64 packets/sec\n 5 minutes output rate 143 kbps (- with framing overhead), 76 packets/sec\n 119690374 packets input, 14194433394 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 140872710 packets output, 29875711696 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0667.8522.a780 (bia 0667.8522.a780)\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes\n Full-duplex, Unconfigured, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 6 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 94.4 kbps (- with framing overhead), 61 packets/sec\n 5 minutes output rate 51.7 kbps (- with framing overhead), 53 packets/sec\n 130337624 packets input, 21305235270 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 118083820 packets output, 13260372096 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nEthernet2.102 is up, line protocol is up (connected)\n Hardware is Subinterface, address is 0667.8522.a780\n Internet address is 11.201.15.201/25\n Broadcast address is 255.255.255.255\n IP MTU 9000 bytes (default)\n Up 36 days, 19 hours, 38 minutes, 3 seconds\nEthernet100 is up, line protocol is up (connected)\n Hardware is Ethernet, address is 0635.02ca.8297 (bia 0635.02ca.8297)\n Internet address is 11.201.8.1/22\n Broadcast address is 255.255.255.255\n IP MTU 1400 bytes , BW 10000000 kbit\n Full-duplex, 10Gb/s, auto negotiation: off, uni-link: n/a\n Up 36 days, 19 hours, 44 minutes, 4 seconds\n Loopback Mode : None\n 3 link status changes since last clear\n Last clearing of "show interface" counters never\n 5 minutes input rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 5 minutes output rate 0 bps (0.0% with framing overhead), 0 packets/sec\n 0 packets input, 0 bytes\n Received 0 broadcasts, 0 multicast\n 0 runts, 0 giants\n 0 input errors, 0 CRC, 0 alignment, 0 symbol, 0 input discards\n 0 PAUSE input\n 0 packets output, 0 bytes\n Sent 0 broadcasts, 0 multicast\n 0 output errors, 0 collisions\n 0 late collision, 0 deferred, 0 output discards\n 0 PAUSE output\nLoopback0 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 11.201.0.3/32\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 41 minutes, 23 seconds\nLoopback10 is up, line protocol is up (connected)\n Hardware is Loopback\n Internet address is 198.18.0.37/24\n Broadcast address is 255.255.255.255\n IP MTU 65535 bytes (default)\n Up 36 days, 19 hours, 44 minutes, 27 seconds\nVlan4093 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 38 minutes, 5 seconds\nVlan4094 is down, line protocol is lowerlayerdown (notconnect)\n Hardware is Vlan, address is 0000.0000.0000 (bia 0000.0000.0000)\n IP MTU 9164 bytes (default)\n Down 36 days, 19 hours, 41 minutes, 19 seconds\nVxlan1 is up, line protocol is up (connected)\n Hardware is Vxlan\n Source interface is Loopback0 and is active with 11.201.0.3\n Replication/Flood Mode is headend with Flood List Source: CLI\n Remote MAC learning is disabled\n VNI mapping to VLANs\n Static VLAN to VNI mapping is \n Dynamic VLAN to VNI mapping for \'evpn\' is\n [4093, 102] [4094, 101] \n Note: All Dynamic VLANs used by VCS are internal VLANs.\n Use \'show vxlan vni\' for details.\n Static VRF to VNI mapping is \n [default, 101]\n [prod, 102]\n MLAG Shared Router MAC is 0000.0000.0000\n', 'description': 'Verify the interfaces of interest MTU', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': 10178, 'fail_reason': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'name': 'test_if_intf_mtu_is_correct_on_', 'output_msg': 'On interface |Ethernet1|: interface MTU is |1500|, correct MTU is |10178|', 'show_cmd': 'show interfaces', 'test_result': False, 'test_suite': 'test_interface.py'}], 'name': 'test_if_intf_mtu_is_correct_on_'}]}, {'name': 'test_lldp.py', 'test_cases': [{'duts': [{'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEosRR2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge1|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}, {'actual_output': True, 'comment': 'TEST if interface |Ethernet1| LLDP receive is enabled on |kg-topology-CloudEOSEdge2|.\nGIVEN LLDP receive state is |True|.\nWHEN LLDP receive state is |True|.\nTHEN test case result is |True|.\nOUTPUT of |show lldp| is:\n\nLLDP transmit interval : 30 seconds\nLLDP transmit holdtime : 120 seconds\nLLDP reinitialization delay : 2 seconds\nLLDP Management Address VRF : default\n\nEnabled optional TLVs:\n Port Description\n System Name\n System Description\n System Capabilities\n Management Address (best)\n IEEE802.1 Port VLAN ID\n IEEE802.3 Link Aggregation\n IEEE802.3 Maximum Frame Size\n IEEE802.3 Power Via MDI\n LLDP-MED Capabilities\n LLDP-MED Network Policy\n\nPort Tx Enabled Rx Enabled \n----------- ---------------- ---------- \nEt1 Yes Yes \nEt2 Yes Yes \nEt100 Yes Yes \n\n', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'dut': 'kg-topology-CloudEOSEdge2', 'expected_output': True, 'fail_reason': '', 'name': 'test_if_lldp_rx_is_enabled_on_', 'output_msg': 'On interface |Ethernet1|: interface LLDPrxEnabled is in state |True|, correct LLDP rxEnabled state is |True|', 'show_cmd': 'show lldp', 'test_result': True, 'test_suite': 'test_lldp.py'}], 'name': 'test_if_lldp_rx_is_enabled_on_'}]}, {'name': 'test_memory.py', 'test_cases': [{'duts': [{'actual_output': 38.13084044717752, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.13084044717752|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 9B112703F293F47ADC3EE25318457B64\nSystem MAC address: 0246.bb59.d5ae\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2959492 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR1| memory utilization percent is |38.13084044717752%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 38.402166283655056, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEosRR2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |38.402166283655056|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: 93F97AD3A1044C742872BA1CFA684D63\nSystem MAC address: 0654.9b7c.b00f\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2996156 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEosRR2', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEosRR2| memory utilization percent is |38.402166283655056%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}, {'actual_output': 35.177399518285306, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge1|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |35.177399518285306|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DB3968957436BF7623C810C9F13FC97E\nSystem MAC address: 029e.d20a.bbfc\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7818736 kB\nFree memory: 2740844 kB\n\n', 'description': 'Verify memory is not exceeding high utlization', 'dut': 'kg-topology-CloudEOSEdge1', 'expected_output': 70, 'fail_reason': '', 'name': 'test_memory_utilization_on_', 'output_msg': 'On router |kg-topology-CloudEOSEdge1| memory utilization percent is |35.177399518285306%| and should be under |70%|', 'result': True, 'show_cmd': 'show version', 'test_result': True, 'test_suite': 'test_memory.py'}], 'name': 'test_memory_utilization_on_'}]}] INFO root:tests_tools.py:527 Test suite test_memory.py exists in results file at index 2 INFO root:tests_tools.py:535 Find Index for test case: test_memory_utilization_on_ on dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:540 Test case test_memory_utilization_on_ exists in results file at index 0 INFO root:tests_tools.py:548 Find Index for dut kg-topology-CloudEOSEdge2 INFO root:tests_tools.py:552 Add DUT kg-topology-CloudEOSEdge2 to test case test_memory_utilization_on_ with parameters {'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': 'TEST if memory utilization is less than specified value on |kg-topology-CloudEOSEdge2|.\nGIVEN memory utilization is less than |70|.\nWHEN memory utilization is |36.05554261400532|.\nTHEN test case result is |True|.\nOUTPUT of |show version| is:\n\nArista vEOS\nHardware version: \nSerial number: DE52F26D16E91F22BB1B507175C8C765\nSystem MAC address: 0635.02ca.8297\n\nSoftware image version: 4.23.1F-cloud-16179785.jakartarel (engineering build)\nArchitecture: x86_64\nInternal build version: 4.23.1F-cloud-16179785.jakartarel\nInternal build ID: 6bc96200-86c1-4e86-bed7-8280a6802809\n\nUptime: 5 weeks, 1 days, 19 hours and 45 minutes\nTotal memory: 7761392 kB\nFree memory: 2797264 kB\n\n', 'result': True, 'test_suite': 'test_memory.py', 'test_result': True, 'output_msg': 'On router |kg-topology-CloudEOSEdge2| memory utilization percent is |36.05554261400532%| and should be under |70%|', 'actual_output': 36.05554261400532, 'dut': 'kg-topology-CloudEOSEdge2', 'fail_reason': ''} | ||||
| Passed | kg-topology-CloudEOSEdge2 | tests/users/test_users.py::UsersTests::test_if_usernames_are_configured_on_[kg-topology-CloudEOSEdge2] | Verify username is set correctly | 0.01 |
|
-------------------------------Captured log setup------------------------------- INFO root:tests_tools.py:92 Opening definitions.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'duts': [{'mgmt_ip': '3.22.137.44', 'name': 'kg-topology-CloudEosRR1', 'neighbors': [{'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.6.163', 'name': 'kg-topology-CloudEosRR2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.132.90.164', 'name': 'kg-topology-CloudEOSEdge1', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}, {'mgmt_ip': '3.131.34.190', 'name': 'kg-topology-CloudEOSEdge2', 'neighbors': [{'neighborDevice': 'spine01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet1'}, {'neighborDevice': 'leaf01', 'neighborPort': 'Ethernet2', 'port': 'Ethernet2'}], 'password': 'arista123', 'transport': 'https', 'username': 'kgrozis'}], 'parameters': {'eapi_file': '/home/docker/.eapi.conf', 'eapi_template': '../templates/eapi.conf.j2', 'excel_report': None, 'html_report': '../reports/report', 'json_report': '../reports/report', 'mark': None, 'processes': 4, 'report_dir': '../reports', 'results_file': 'result.yml', 'setup_show': False, 'show_log': 'show_output.log', 'stdout': False, 'test_cases': 'All', 'test_suites': None, 'tests_dir': './tests', 'test_definitions': 'tests_definitions.yaml', 'verbose': True}} INFO root:tests_tools.py:92 Opening ./tests/interface/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]} INFO root:tests_tools.py:92 Opening ./tests/host/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/extension/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/memory/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/cpu/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ztp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/lldp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]} INFO root:tests_tools.py:92 Opening ./tests/filesystem/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/aaa/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/ntp/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/daemon/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/users/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/environment/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/api/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/dns/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/tacacs/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:92 Opening ./tests/logging/test_definition.yaml for read INFO root:tests_tools.py:97 Inputed the following yaml: {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]} INFO root:tests_tools.py:651 Opening tests_definitions.yaml for write INFO root:tests_tools.py:655 Output the following yaml: {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} INFO root:tests_tools.py:638 Return the following test definitions data strcuture {'test_suites': [{'name': 'test_interface.py', 'testcases': [{'name': 'test_if_intf_protocol_status_is_connected_on_', 'description': 'Verify the interfaces of interest protocol statuses are connected', 'expected_output': 'up', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_link_status_is_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'connected', 'show_cmd': 'show interfaces status'}, {'name': 'test_if_intf_phy_status_connected_on_', 'description': 'Verify the interfaces of interest link statuses are connected', 'expected_output': 'linkUp', 'show_cmd': 'show interfaces phy detail'}, {'name': 'test_if_intf_counters_has_input_errors_on_', 'description': 'Verify the interfaces of interest does not have input errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_output_errors_on_', 'description': 'Verify the interfaces of interest does not have outut errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_short_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooShorts errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_frame_too_long_errors_on_', 'description': 'Verify the interfaces of interest have no frameTooLong errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_fcs_errors_on_', 'description': 'Verify the interfaces of interest have no fcsErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_alignment_errors_on_', 'description': 'Verify the interfaces of interest have no alignmentErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_counters_has_symbol_errors_on_', 'description': 'Verify the interfaces of interest have no symbolErrors errors', 'expected_output': 0, 'show_cmd': 'show interfaces counters errors'}, {'name': 'test_if_intf_out_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no outDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_in_counters_are_discarding_on_', 'description': 'Verify the interfaces of interest have no inDiscards', 'expected_output': 0, 'show_cmd': 'show interfaces counters discards'}, {'name': 'test_if_intf_mtu_is_correct_on_', 'description': 'Verify the interfaces of interest MTU', 'expected_output': 10178, 'show_cmd': 'show interfaces'}]}, {'name': 'test_host.py', 'testcases': [{'name': 'test_if_hostname_is_correcet_on_', 'description': 'Verify hostname is set on device is correct', 'expected_output': None, 'show_cmd': 'show hostname', 'comment': None, 'result': True}]}, {'name': 'test_extension.py', 'testcases': [{'name': 'test_if_extensions_are_installed_on_', 'description': 'Verify a list of extension are installed on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': 'installed', 'comment': None, 'result': True}, {'name': 'test_if_extensions_are_erroring_on_', 'description': 'Verify a list of extension are not erroring on a DUT', 'extensions': ['awslogs.swix', 'awsha.rpm'], 'show_cmd': 'show extensions', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_memory.py', 'testcases': [{'name': 'test_memory_utilization_on_', 'description': 'Verify memory is not exceeding high utlization', 'show_cmd': 'show version', 'expected_output': 70, 'comment': None, 'result': True}]}, {'name': 'test_cpu.py', 'testcases': [{'name': 'test_1_sec_cpu_utlization_on_', 'description': 'Verify 1 second CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_1_min_cpu_utlization_on_', 'description': 'Verify 1 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}, {'name': 'test_5_min_cpu_utlization_on_', 'description': 'Verify 5 minute CPU % is under specificied value', 'show_cmd': 'show processes', 'expected_output': 10, 'comment': None, 'result': True}]}, {'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_lldp.py', 'testcases': [{'name': 'test_if_lldp_rx_is_enabled_on_', 'description': 'Verify LLDP receive is enabled on interesting interfaces', 'expected_output': True, 'show_cmd': 'show lldp'}]}, {'name': 'test_filesystem.py', 'testcases': [{'name': 'test_if_files_on_', 'description': 'Verify filesystem is correct and expected files are present', 'files': ['flash:startup-config', 'flash:veos-config', 'flash:zerotouch-config'], 'expected_output': False, 'show_cmd': None, 'comment': None, 'result': True}]}, {'name': 'test_aaa.py', 'testcases': [{'name': 'test_if_authentication_counters_are_incrementing_on_', 'description': 'Verify AAA counters are working correctly', 'show_cmd': 'show aaa counters', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_aaa_session_logging_is_working_on_', 'description': 'Verify AAA session logging is working by identifying eapi connection', 'show_cmd': 'show users detail', 'expected_output': 'commandApi', 'comment': None, 'result': True}, {'name': 'test_if_commands_authorization_methods_set_on_', 'description': 'Verify AAA command authorization are method-lists set correct', 'cmd_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_authorization_methods_set_on_', 'description': 'Verify AAA exec authorization are method-lists set correct', 'exec_auth': ['none'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_default_login_authentication_methods_set_on_', 'description': 'Verify AAA default login authentication are method-lists set correct', 'login_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_login_authentication_methods_set_on_', 'description': 'AAA login authentication are method-lists set correct', 'login_auth': None, 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_authentication_methods_set_on_', 'description': 'Verify AAA dot1x authentication are method-lists set correct', 'dot1x_auth': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_enable_authentication_methods_set_on_', 'description': 'Verify AAA enable authentication are method-lists set correct', 'enable_auth': ['local'], 'show_cmd': 'show aaa methods all', 'expected_output': True, 'actual_output': None, 'comment': None, 'result': True}, {'name': 'test_if_system_accounting_methods_set_on_', 'description': 'Verify AAA system accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_exec_accounting_methods_set_on_', 'description': 'Verify AAA exec accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_priviledge_accounting_methods_set_on_', 'description': 'Verify AAA priviledge accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_dot1x_accounting_methods_set_on_', 'description': 'Verify AAA dot1x accounting method-lists are set correct', 'default_acct': [], 'console_acct': [], 'show_cmd': 'show aaa methods all', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_ntp.py', 'testcases': [{'name': 'test_if_ntp_is_synchronized_on_', 'description': 'Verify ntp is setup and working correctly', 'show_cmd': 'show ntp status', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_ntp_associated_with_peers_on_', 'description': 'Verify ntp peers are correct', 'show_cmd': 'show ntp associations', 'expected_output': 1, 'comment': None, 'result': True}, {'name': 'test_if_process_is_running_on_', 'description': 'Verify processes are running', 'show_cmd': 'show processes', 'processes': ['ntpd'], 'expected_output': 1, 'comment': None, 'result': True}]}, {'name': 'test_daemon.py', 'testcases': [{'name': 'test_if_daemons_are_running_on_', 'description': 'Verify a list of daemons are running on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}, {'name': 'test_if_daemons_are_enabled_on_', 'description': 'Verify a list of daemons are enabled on DUT', 'daemons': ['TerminAttr'], 'expected_output': True, 'show_cmd': 'show daemon', 'comment': None, 'result': True}]}, {'name': 'test_ztp.py', 'testcases': [{'name': 'test_if_zerotouch_is_disabled_on_', 'description': 'Verify local log messages', 'show_cmd': 'show zerotouch', 'expected_output': 'disabled', 'comment': None, 'result': True}, {'name': 'test_for_zerotouch_config_file_on_', 'description': 'Verify zerotoucn-config file is on flash', 'show_cmd': 'dir flash:zerotouch-config', 'expected_output': True, 'comment': None, 'result': True}]}, {'name': 'test_environment.py', 'testcases': [{'name': 'test_if_system_environment_temp_are_in_spec_on_', 'description': 'Verify system temperature environmentals are functional within spec', 'expected_output': ['temperatureOk', False, False], 'show_cmd': 'show system environment temperature', 'comment': None, 'result': True}, {'name': 'test_if_system_environment_power_are_in_spec_on_', 'description': 'Verify system power environmentals are functional within spec', 'expected_output': 'ok', 'show_cmd': None, 'comment': None, 'result': True}, {'name': 'test_if_system_environment_cooling_is_in_spec_on_', 'description': 'Verify system cooling environmentals are functional within spec', 'expected_output': 'coolingOk', 'show_cmd': 'show system environment cooling', 'comment': None, 'result': True}]}, {'name': 'test_api.py', 'testcases': [{'name': 'test_if_management_https_api_server_is_running_on_', 'description': 'Verify management api https server is running', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_port_is_correct_on_', 'description': 'Verify https server is enabled on port 443', 'show_cmd': 'show management api http-commands', 'expected_output': 443, 'comment': None, 'result': True}, {'name': 'test_if_management_https_api_server_is_enabled_on_', 'description': 'Verify management api https server is enabled', 'show_cmd': 'show management api http-commands', 'expected_output': True, 'comment': None, 'result': True}, {'name': 'test_if_management_http_api_server_is_running_on_', 'description': 'Verify management api http server is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}, {'name': 'test_if_management_local_http_api_server_is_running_on_', 'description': 'Verify management api local httpserver is not running', 'show_cmd': 'show management api http-commands', 'expected_output': False, 'comment': None, 'result': True}]}, {'name': 'test_dns.py', 'testcases': [{'name': 'test_if_dns_resolves_on_', 'description': 'Verify DNS is running by performing pings and verifying name resolution', 'show_cmd': 'show management api http-commands', 'urls': ['google.com', 'cnn.com', 'arista.com'], 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_tacacs.py', 'testcases': [{'name': 'test_if_tacacs_is_sending_messages_on_', 'description': 'Verify tacacs messages are sending correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}, {'name': 'test_if_tacacs_is_receiving_messages_on_', 'description': 'Verify tacacs messages are received correctly', 'show_cmd': 'show tacacs', 'expected_output': None, 'comment': None, 'result': True}]}, {'name': 'test_logging.py', 'testcases': [{'name': 'test_if_log_messages_appear_on_', 'description': 'Verify local log messages', 'show_cmd': 'show logging', 'sys_msgs': ['critical', 'warning', 'ECC', 'servers errors', 'parity'], 'expected_output': None, 'comment': None, 'result': True}]}]} ------------------------------Captured stdout call------------------------------ On router |kg-topology-CloudEOSEdge2| |ec2-user| username is |configured| On router |kg-topology-CloudEOSEdge2| |kgrozis| username is |configured| -------------------------------Captured log call-------------------------------- INFO root:tests_tools.py:346 Identify test case and return parameters INFO root:tests_tools.py:349 Return testcases for Test Suite: test_users.py INFO root:tests_tools.py:352 Suite_parameters: [{'name': 'test_users.py', 'testcases': [{'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True}]}] INFO root:tests_tools.py:354 Return parameters for Test Case: test_if_usernames_are_configured_on_ INFO root:tests_tools.py:357 Case_parameters: {'name': 'test_if_usernames_are_configured_on_', 'description': 'Verify username is set correctly', 'usernames': ['ec2-user', 'kgrozis'], 'show_cmd': 'show running-config section username', 'expected_output': True, 'comment': None, 'result': True} INFO root:tests_tools.py:372 Verify if show command |show running-config section username| was successfully executed on kg-topology-CloudEOSEdge2 dut INFO root:tests_tools.py:376 Verified output for show command |show running-config section username| on kg-topology-CloudEOSEdge2 INFO root:test_users.py:74 TEST is ec2-user username configured |kg-topology-CloudEOSEdge2| INFO root:test_users.py:76 GIVEN ec2-user username configured status: |True| INFO root:test_users.py:82 WHEN ec2-user username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. INFO root:test_users.py:74 TEST is kgrozis username configured |kg-topology-CloudEOSEdge2| INFO root:test_users.py:76 GIVEN kgrozis username configured status: |True| INFO root:test_users.py:82 WHEN kgrozis username configured status is |True| INFO root:test_users.py:84 THEN test case result is |True| INFO root:test_users.py:85 OUTPUT of |show running-config section username| is : no username admin ! username ec2-user nopassword username ec2-user ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW9oTsCjh4dXhU/8P7WwXmgYoJqHcHwPXkCYWklBGHpvgjUBAekGJSfwgM+KMX6e1dX/jKXroFSiRGzafQadO2U2UryY7+1gS90vZ7KRam73Kyy83Is1+ptpgrAvc/F2zIl8PGBQAw3smkkIg6SIT2Rs1L+w+9iYgl0UX/wBuf7pIIjOXDaFBM8QFLMFK0msSIcwPKydoWLFOWbDdn9XxPsiJ5CRJfk2MWAgrXCgb0+4NYgaGRCYM+UJqElSmIj5LhLOf5BJppYNFGCvkMl6wUuBjbpgElefBKOgJbx8prlRIebcSSlutQdxrfcqS/evdLpqr6z9I0CVrr+j1hK4ID kgrozis-east2 username kgrozis secret sha512 $6$v79HvPRjgAsoZgMx$oKhb5cP4jZRmSbW4d0AGyN.2yImvSEhdfo3YiLiVrtKWphCSxxtKj15r/Mkldk614h8e2nCYxOLO1siJ0wB7f. | ||||